简体   繁体   English

如何使用带有 ES5 的 Javascript 从基于键字段的对象数组中获取唯一值

[英]How to get unique values from a object array based on a key field utilizing Javascript with ES5

In this post Get all unique values in a JavaScript array (remove duplicates) one of the answers shows how to get unique items for an object array based on a value of a field (shown below), but it is in ES6 notation and I need help converting it to ES5 (no arrows or elipses).在这篇文章中获取 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);

i hope this help我希望这有帮助

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)

You can use reduce method and map function:您可以使用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}}))

An example:一个例子:

 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.

相关问题 从javascript ES5中的多条记录中获取给定键的值 - Get values for the given key from multiple records in javascript ES5 从等效对象的ES5中获取数组 - Get array from the object in ES5 equivalent 如何在ES5中使用多个值在数组中查找对象的索引? - How to find index of object in array using multiple values with ES5? 从JavaScript ES5中的数组获取未定义的项目 - Get not undefined items from array in javascript ES5 ES6方式 - 按键从嵌套数组中获取唯一值 - ES6 way - Get unique values from a nested array by key Javascript ES5:如何在不使用 Lodash 或 Underscore 的情况下按键分组并从键值对象的平面数组创建子对象 - Javascript ES5: How to Group By a key and create Sub objects from a flat array of key-value objects without using Lodash or Underscore 如何从对象数组 Javascript 获取唯一值 - How to get unique values from Object Array Javascript 如何获得特定键的唯一值的数组,前提是我只有使用ES6的那个对象的ID数组 - How to get an array of unique values of a specific key provided I only have an array of id's of that object using ES6 ES5 Javascript映射数组中的对象,然后按组更改对象键 - ES5 Javascript map through objects in array, then change the object key by group 如何在javascript(es5)或jquery中将两个单个数组合并为数组object? - How to Merge two single array into an array object in javascript(es5) or jquery?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM