[英]Get values for the given key from multiple records in javascript ES5
[英]How to get unique values from a object array based on a key field utilizing Javascript with ES5
在这篇文章中获取 JavaScript 数组中的所有唯一值(删除重复项),其中一个答案显示了如何根据字段值(如下所示)获取对象数组的唯一项,但它使用 ES6 表示法,我需要帮助将其转换为 ES5(没有箭头或省略号)。
let objArr = [{
id: '123'
}, {
id: '123'
}, {
id: '456'
}];
objArr = objArr.reduce((acc, cur) => [
...acc.filter((obj) => obj.id !== cur.id), cur
], []);
console.log(objArr);
我希望这有帮助
var objArr = [{
id: '123'
}, {
id: '123'
}, {
id: '456'
}];
var newObjArr = objArr.reduce(function(previous, current){
var alredyExists = previous.filter(function(item){
return item.id === current.id
}).length > 0
if(!alredyExists){
previous.push(current)
}
return previous
}, [])
console.log(newObjArr)
let objArr = [{ id: '123' }, { id: '123' }, { id: '456' }] objArr = objArr.reduce(function (acc, cur) { return acc.filter(function (obj) { return obj.id !== cur.id }).concat([cur]) }, []) console.log(objArr)
您可以使用reduce
方法和map
函数:
let unique = objArr.reduce(function(a, c){
a[c.id] = a[c.id] || {};
a[c.id] = c.id;
return a;
},{})
console.log(Object.values(unique).map(function(s){return {id: s}}))
一个例子:
let objArr = [{ id: '123' }, { id: '123' }, { id: '456' }]; let unique = objArr.reduce(function(a, c){ a[c.id] = a[c.id] || {}; a[c.id] = c.id; return a; },{}) console.log(Object.values(unique).map(function(s){return {id: s}}))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.