2016-10-03 74 views
2

假設我有一個像這樣的對象的列表:創建從對象列表對象成員的名單

var list = [ 
    { date: '22/9/2016', status: 1, id: '11111' }, 
    { date: '23/9/2016', status: 1, id: '22222' }, 
    { date: '24/9/2016', status: 1, id: '33333' } 
]; 

我想創建在上面的列表中的所有對象的ID的列表,讓我結束於:

var idList = ['11111', '22222', '33333']; 

很明顯,我可以遍歷列表並手動構建idList。 是否有通過原生JS,angularJS或可能是其他庫來做到這一點的另一種方法。

在列表中手動迭代是不是一個大的開銷,我只是想確保我不會忽略JS/angularJS會爲我做這個,而不是功能。

回答

7

您可以使用Array map

var list = [ 
 
    { date: '22/9/2016', status: 1, id: '11111' }, 
 
    { date: '23/9/2016', status: 1, id: '22222' }, 
 
    { date: '24/9/2016', status: 1, id: '33333' } 
 
]; 
 
var idList = list.map(item => item.id); 
 
console.log(idList);

+0

是否有任何性能上的提高呢? –

+1

採取這種比較https://ryanpcmcquen.org/javascript/2015/10/25/map-vs-foreach-vs-for.html –

+0

我知道一看一定有這樣做的,而不是這種單行路手動迭代。謝謝! –

2

使用

var ids = list.map(function(item) { return item.id}); 

應該工作。