私はarr1やarr2などのオブジェクトを持つ2つの配列を持っています。重複する項目と元の項目を分けたいと思います。つまり、arr1から、arr2と一致する項目があれば、それらの項目[arr1から]は重複と見なされます。それが一致しない場合、それは元のアイテムです。2つのオブジェクトの配列を比較する方法javascript
が、私は以下のプログラムをした、しかし、予想通り、それはかなりここ
arr1 = [{name: "sunrise.jpg"},{name: "nature.jpg"},{name:"sunflower.jpg"}, {name: "sunset.jpg"}];
arr2 = [{
"@type" : "Image",
"objectTypeId" : "Image",
"baseTypeId" : "document",
"name" : "sunrise.jpg",
"width" : "284",
"height" : "177"
}, {
"@type" : "Image",
"objectTypeId" : "Image",
"baseTypeId" : "document",
"name" : "Lao Tzu",
"width" : "638",
"height" : "960"
}, {
"@type" : "Image",
"objectTypeId" : "Image",
"baseTypeId" : "document",
"name" : "nature.jpg",
"width" : "300",
"height" : "168"
}, {
"@type" : "Image",
"objectTypeId" : "Image",
"baseTypeId" : "document",
"name" : "replay_12",
"width" : "500",
"height" : "717"
}, {
"@type" : "Image",
"objectTypeId" : "Image",
"baseTypeId" : "document",
"name" : "sunflower.jpg",
"width" : "300",
"height" : "168"
}
];
var originalItems = [];
var diff = function(arr1, arr2) {
var dupes = [];
for(var i in arr1) {
//console.log(i);
for(var j in arr2){
if(arr1[i].name === arr2[j].name){
dupes.push(arr2[j]);
} else {
originalItems.push(arr2[j]);
}
}
}
return dupes;
}
var sd = diff(arr1, arr2);
console.log(sd);
console.log(originalItems);
を働いていない、オリジナルのアイテムは、「sunset.jpg」と残りは「dupes」に移動されています。
ここに何か不足しています、手がかり、pls?
あなたは、上記の例から、結果として何を期待していますか? –
私はあなたのコードをjsfiddleにコピーして貼り付けました。結果はあなたが言うものではありません。私は二剤=日の出、自然、ひまわりを得る。残りの部分はオリジナルです。私は何もしませんでした。コピーして貼り付けてください。 – lascort
実際に@Kinduserが正しく動作しません。「originalItems」配列にはすべての項目があります。しかし、その結果は、質問からの結果ではない。しかし、ええ、私の悪い – lascort