アレイ1 = [対象]は、オブジェクトが存在するかどうかを確認するために2つの配列を比較
アレイ2 = [オブジェクト、オブジェクト]
だがアレイ1つのオブジェクトにしましょうがある:
{
'name': 'apple',
'id': ''
}
アレイ2:
オブジェクト1:
{
'name': 'bananna',
'id': 2
}
オブジェクト2:
{
'name': 'apple',
'id': 1
}
私は、アレイ1内のオブジェクトが配列2であるかどうかを確認したい、それがある場合は、同じIDに配列1のIDを設定します。 trueまたはオブジェクト自体を返し、配列1でidを1に変更する必要があります。
私の試行は速いとは思わないでください。 btwどちらの配列も任意のサイズにできます。
var itemFrom1;
for (var a = 0; a < array1.length; a++) {
itemFrom1 = array1[a];
for(var b = 0; b < array2.length; b++) {
if (itemFrom1.name === array2[b].name) {
itemFrom1.id = array2[b].id;
}
}
}
おそらく、私はアンダースコア.jsまたは簡単な方法を使用できます。
var matched=_.findWhere(array2,{name:array1.name})
注:すべてのブラウザで動作する必要があります。
迷惑なドル記号は何ですか? –
等号をチェックしています。つまり、array1の最初の要素がarray2の最初の要素と同じ名前を持っているかどうかを確認しています。次に、2番目の要素が2番目の要素に一致するかどうかを確認します。 – JimN
@JimNastosええ、私は気づいたので、私のアプローチが間違っているので、どのように修正するのですか?インデックスは異なる可能性があります – Angular