3

オブジェクトの配列を新しいオブジェクトで更新しようとしているという奇妙な状況がありますが、プッシュの前に console.log ステートメントを配置すると、配列の内部に新しいオブジェクトが既に含まれていることが示されます。コードの基本は次のとおりです。

 var array1=[{
    "Name": "Lake",
    "ID": "1234"
    }];

var object1={
    "Name": "Mountain",
    "ID": "1234"
    };

function testArray() {
    console.log(array1);
    array1.push(object1);

    }

オブジェクトに同じ ID が含まれている場合、最終的には元の配列を新しい情報で更新したいと考えています。同じ ID が含まれていない場合は、追加する必要があります。これは、array1 に対する $.each ループで発生します。

助けていただければ幸いです。ありがとうございました。

4

1 に答える 1

1

これは、Chrome などの Webkit ブラウザーでこれを実行していconsole.log()てキューに入れられているためです (これは Webkit のバグです。Firefox または Webkit 以外のブラウザーで実行すると発生しません)。したがって、後の値が出力されます。配列。使用する必要があります

JSON.stringify(array1);

より正確な結果を得るために。

オブジェクトに同じ ID が含まれている場合にのみ元の配列を新しい情報で更新する場合は、if ステートメントを使用して ID を確認します。

function updateA(obj){
  if(obj.ID === array1.ID){
    array1.push(obj); 
    console.log( JSON.stringify(array1));
  }
}
updateA(object1);
于 2013-10-01T00:20:35.670 に答える