2つの2D配列の最初の列の値を比較する次の関数があります。2D配列の比較 - ループエラーのネストされた
var new_array = [['EMI_007','lion','cat'],
['EMI_008','cat','dog']
];
var existing_array = [['EMI_002','cat','tiger'],
['EMI_004','hen','pig'],
['EMI_007','pigeon','hen'],
['EMI_001','boar','tiger']
];
new_array [i] [0]の値は、existing_array [j] [0]の値と比較されます。
同じ場合は、行全体がnew_array
の行に置き換えられます。そうでない場合は、new_array
行が既存の配列に連結されます。
上記の例では、new_arrayがexisting_arrayと比較されています。
EMI_007は 'existing_array'に存在するため、['EMI_007','lion','cat']
で置き換えられ、['EMI_008'、 'cat'、 'dog']が既存の配列に追加されます。
次の機能を作成しましたが、エラーが発生しているようです。
new_arrayで見つかったEMI IDを持つ行が 'existing_array'に存在しない場合は、複数回挿入されます。
function concat_2D_array(existing_array, new_array){
for (var i=0; i<new_array.length; i++) {
for (var j=0; j<existing_array.length; j++) {
if(new_array[i][0] == existing_array[j][0]){
alert("ok,it already exists in the existing_array");
existing_array.splice(j,1,new_array[i]);
}
else{
alert("It is not in the existing array");
// existing_array.concat(new_array[i]);
}
}
}
alert("returned existing_array"+existing_array)
return existing_array;
}
任意の助けが最も評価
ありがとうございました。 – tanya