如何比较这些数组对象的顺序是相等的。
this.arrayOne = [
{ "data": "India", "seq_id": 1 },
{ "data": "Japan", "seq_id": 2 },
{ "data": "USA", "seq_id": 3 }
]
this.arrayTwo = [
{ "data": "India", "seq_id": 1 },
{ "data": "Japan", "seq_id": 2 },
{ "data": "USA", "seq_id": 3 }
]
任何人都可以解决问题..!?
答案 0 :(得分:1)
尝试这样的事情:
let a = [
{ "match_value": "India", "seq_id": 1 },
{ "match_value": "Japan", "seq_id": 2 },
{ "match_value": "USA", "seq_id": 3 }
]
let b = [
{ "match_value": "India", "seq_id": 1 },
{ "match_value": "Japan", "seq_id": 2 },
{ "match_value": "USA", "seq_id": 3 }
]
function compare(a, b):boolean{
let flag = a.length ;
for (let i = 0, len = a.length; i < len; i++) {
if (a[i].match_value === b[i].match_value) {
if (a[i].seq_id === b[i].seq_id) {
flag --;
}
}
}
if(flag)
return false;
else
return true;
}
console.log(compare(a,b));
答案 1 :(得分:1)
此代码检查两个阵列是否具有相同的顺序。为了比较数组中的对象,它检查两个对象是否具有相同数量的属性,并且它们的所有属性是否相等(考虑到所有属性都是基本类型)。
let arrayOne = [
{ "match_value": "India", "seq_id": 1 },
{ "match_value": "Japan", "seq_id": 2 },
{ "match_value": "USA", "seq_id": 3 }
];
let arrayTwo = [
{ "match_value": "India", "seq_id": 1 },
{ "match_value": "Japan", "seq_id": 2 },
{ "match_value": "USA", "seq_id": 3 }
];
let equal = arrayOne.every((item, i) => {
let keys = Object.keys(item);
return keys.length === Object.keys(arrayTwo[i]).length &&
keys.every(key => arrayTwo[i][key] === item[key]);
});
console.log(equal);
&#13;