我需要循环到这个数组并比较数组中对象的值,但我尝试了不同的方法,我可以得到它。我错过了什么或者有更好的方法吗?
var all = [{a: 1, b: 2, c: 9, d: 5}, {a: 1, t: 58, r: 19, d: 5}, {a: 1, t: 14, r: 89, d: 5}];
for (var i = 0; i < all.length; i++) {
for (var j = 0; j < all.length; j++) {
for(var key in i){
for(var keyz in j){
if(all[i][key] != all[j][keyz]){
console.log('no same');
}
}
}
}
}
答案 0 :(得分:1)
试试这个:
var all = [{a: 1, b: 2, c: 9, d: 5}, {a: 1, t: 58, r: 19, d: 5}, {a: 1, t: 14, r: 89, d: 5}];
var output = [], tempObj = {};
for (var i = 0; i < all.length; i++) {
var object = all[i];
for(var key in object) {
if(tempObj[key] && tempObj[key].value == object[key]) {
delete output[tempObj[key].index][key];
delete object[key];
} else {
tempObj[key] = {
value: object[key],
index: i
}
}
}
output[i] = object;
}
console.log(output)
&#13;
答案 1 :(得分:-1)
for (var i = 0; i < all.length; i++) {
for(var j = 0; j < all.length; j++) {
for (var key in all[i]) {
if (typeof all[j][key] !== "undefined" && all[i][key] == all[j][key] && i != j) {
console.log("same");
}
}
}
}