首页 > 解决方案 > 查找2个数组之间的数据值发生变化的索引位置

问题描述

我有两个数组

initial:["David","Brad"]
after:["David","Cristina"]

所以在上面两个数组之间位置2的值已经改变了,那么我怎么能简单地返回改变的索引位置:

期望的结果:[2]

如果两个值都被更改,则所需的结果将是 [1,2]

我在下面尝试过,

 var res= a.after.filter( function( p, index) {
                return Object.keys(p).some( function( prop ) {
                  return p[prop] !== a.initial[index][prop];
                })
              })

上面的代码将输出返回为 ["Cristina"],它是 after 数组中的更改值。

如何调整它以获得索引位置而不是值。

标签: javascriptangular

解决方案


只要数组的元素是字符串/数字并且数组的长度相同,下面的代码就可以完成工作

请验证..

initial = ["David","Brad"];
after = ["David","Cristina"];
arr = [];
  
this.initial.map((i,v)=> {
   if (i !== this.after[v]) {
     this.arr.push(v+1)
    }
});
  
  console.log(this.arr)


推荐阅读