[英]How to sort an array of objects by property values and sum when this value is equal?
[英]How to check for equal property values in 2 Array of Objects in JavaScript?
假设我有 2 个数组:
const array_1 = [ { id: 1, sex: 'M' }, { id: 2, sex: 'F' }, { id: 3, sex: 'M' } ]
const array_2 = [ { id: 12, age:1 }, { id: 22, age: 4 }, { id: 3, age: 2 } ]
我想检查array_1
中是否有也在array_2
。 我可以做这样的事情:
array_1.forEach((el_1) => {
array_2.forEach((el_2, i) => {
if(el_1.id === el_2.id) alert(i);
})
})
或者使用 ECMAScript 2015 findIndex 方法:
array_1.forEach((el_1) => {
const i = array_2.findIndex(x => x.id === el_1.id)
if(i >= 0) alert(i);
})
如果要检查输出: https : //jsfiddle.net/v7bjnpa7/1/
通常这会起作用,但是有没有更干净的方法来做到这一点? 干净是指一种不会影响性能的更好方法? 任何帮助将非常感激。
if(array_1.find( e1 => array_2.find( e2 => e1.id == e2.id))) {
alert('found');
}
您可以使用Underscore js [ http://underscorejs.org/][1]
在那里你将有方法来比较、交集等等。
尝试一下
或者
const array_1 = [ { id: 1, sex: 'M' }, { id: 2, sex: 'F' }, { id: 3, sex: 'M' } ];
const array_2 = [ { id: 12, age:1 }, { id: 22, age: 4 }, { id: 3, age: 2 } ];
array_1.forEach(function(item)
{
array_2.forEach(function (item2) {
if(item.id==item2.id)
{
console.log(item,item2)
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.