[英]Multiple objects comparison using javascript
我有一個對象數組(多個對象)並且想將它們與動態添加的對象進行比較。
目前我的代碼看起來像
public compare(row) {
for (var i = 0; i < row.length; i++) {
var a = row[i];
console.log(a, 'first array !!!!!!!');
var b = row[i + 1];
console.log(b, 'Second array !!!!!!!');
if (a != undefined && b != undefined) {
return JSON.stringify(a) === JSON.stringify(b);
}
else {
return false;
}
}
}
但我只能比較前兩條記錄。 有沒有辦法使用javascript動態比較對象。 提前致謝...
您的循環總是在第一個循環結束時返回。 如果發現不匹配,您只想在循環內返回 false,否則讓循環繼續。 如果它沒有發現任何不匹配,那么您就知道您的對象匹配,並且您可以返回 true。
public compare(row) {
for (var i = 0; i < row.length - 1; i++) {
var a = row[i];
var b = row[i + 1];
if (!a || !b) {
continue;
}
if (JSON.stringify(a) !== JSON.stringify(b)) {
return false;
}
}
return true;
}
我還將循環設置為僅在i < row.length - 1
繼續,因為row[row.length]
處沒有元素。
演示
var equal = [ { a: 1 }, undefined, { a: 1 }, { a: 1 } ]; var notEqual = [ { a: 1 }, undefined, { a: 1 }, { a: 1 }, { a: 2 } ]; function compare(row) { for (var i = 0; i < row.length - 1; i++) { var a = row[i]; var b = row[i + 1]; if (!a || !b) { continue; } if (JSON.stringify(a) !== JSON.stringify(b)) { return false; } } return true; } console.log('should be true: ', compare(equal)); console.log('should be false: ', compare(notEqual));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.