如何比较两个数组对象的命令在Typescript中是相同的

时间:2018-04-10 04:57:48

标签: typescript

如何比较这些数组对象的顺序是相等的。

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 }    
            ]

任何人都可以解决问题..!?

2 个答案:

答案 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)

此代码检查两个阵列是否具有相同的顺序。为了比较数组中的对象,它检查两个对象是否具有相同数量的属性,并且它们的所有属性是否相等(考虑到所有属性都是基本类型)。

&#13;
&#13;
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;
&#13;
&#13;