我需要从数组中的对象获取值

时间:2019-02-27 14:51:40

标签: javascript arrays object

如何使用Javascript获取此类对象中每个对象的ID:

array = [
    { active: false, defaultTag:true, id: '507f191e810c19729de860ea', title: 'one' },
    { active: false, defaultTag:true, id: '507f191e810c19722de860ea', title: 'two' }
];

我需要获取ID以便检查该项目是否已经存在于数组中,并且有使用意图再次保存相同的对象。

最好的问候 美国

2 个答案:

答案 0 :(得分:0)

在这里您可以获得唯一ID的数组

 var unique = [],
 tmp, i = 0;
 while(i < array.length){
   unique.indexOf(tmp = array[i++].id) > -1 ? array.pop(i--) : unique.push(tmp)
 }
 console.log(unique);

答案 1 :(得分:0)

  1. 使用Array.reduce将所有项目收集到一个对象下。这将过滤出重复项
  2. 使用Object.values获取对象内部的值。返回的值是过滤后的数组

const array = [
    { active: false, defaultTag:true, id: '507f191e810c19729de860ea', title: 'duplicateOne' },
    { active: false, defaultTag:true, id: '507f191e810c19729de860ea', title: 'one' },
    { active: false, defaultTag:true, id: '507f191e810c19722de860ea', title: 'two' }
];

const removeDupsById = arr => Object.values(
  arr.reduce((a, c) => ({...a, [c.id]: c}), {})
);

console.log(removeDupsById(array));