从角度js中获取数组对象中选定值的列表

时间:2017-02-22 10:42:53

标签: angularjs json

我是角度js的新手。我有一个数组对象

var data = [{ id:1, name: 'Adam', email: 'adam@email.com', age: 12},
            { id:2, name: 'Amalie', email: 'amalie@email.com', age: 12}];

现在,我希望数据为

var data_id = [{1},{2}];

那么我应该从数组对象中获取唯一的id列表?

2 个答案:

答案 0 :(得分:1)

编辑:问题已更新。

无法实现您想要数据的格式([{1},{2}])。 javascript对象必须有一个键和一个值。所以,{1}无效。 但另一方面,如果它只是您想要的ID([1,2]),请参阅下面的映射,而不是返回{id: item.id},只需返回item.id

var data = [{ id:1, name: 'Adam', email: 'adam@email.com', age: 12},
            { id:2, name: 'Amalie', email: 'amalie@email.com', age: 12}];

// [{id: 1, {id: 2}}]
var data_id = data.map(function(item){
    return { id: item.id};
});

// [1, 2]
var data_id = data.map(function(item){
    return item.id;
});

如果您使用的是ES6,则可以简化代码

var data_id = data.map(item => ({ id: item.id}));

您可以使用javascript map函数仅提取ID。

请参阅https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map

答案 1 :(得分:1)

在Javascript中,对象同时拥有keyvalue

var obj = {
  myKey: value,
}

您可以尝试使用JavaScript array.map()方法。它将返回包含您要访问的元素的数组。



var data = [{ id:1, name: 'Adam', email: 'adam@email.com', age: 12},
            { id:2, name: 'Amalie', email: 'amalie@email.com', age: 12}];
            
var result = data.map(function(item) {
  return item.id;
});

console.log(result);