var x = [{a:1, b:4,c:5}, {a:1, b:2,c:7}];
var y = [{a:1, b:2,c:6}, {a:1, b:2,c:8}];
我想根据前 2 个键(即 a、b)进行比较,如果不相等则获取索引。在上面的示例中,由于 b 值不相等,因此输出应获取为 0。我们如何在 javascript 或 Lodash 中实现?谢谢。
最佳答案
因此,您需要一个比较函数来比较一个对象数组,其中您想要一个对象的索引,该对象的两个属性 a
和 b
不相等。
如果退出,下面的实现将返回这样的索引(0-base),否则返回-1
。
function compare(x,y){
for(let i=0;i<x.length && i<y.length;i++){
if(x[i].a!=y[i].a || x[i].b!=y[i].b)
return i;
}
return -1;
}
var x = [{a:1, b:4,c:5}, {a:1, b:2,c:7}];
var y = [{a:1, b:2,c:6}, {a:1, b:2,c:8}];
console.log(compare(x,y)); //0
y = [{a:1, b:4,c:6}, {a:1, b:2,c:8}];
console.log(compare(x,y));//-1
y = [{a:1, b:4,c:6}, {a:1, b:3,c:8}];
console.log(compare(x,y));//1
希望这是你想要的。
关于javascript - 比较并返回lodash中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726373/