簡體   English   中英

是否有一種優雅的方法可以從JavaScript或angularjs的二維數組中僅獲取一維?

[英]Is there an elegant way to get only one dimension from a two dimensional array in JavaScript or angularjs?

有沒有一種方法可以只獲取數組的一個維度而無需遍歷整個數組來提取它們?

為了證明我實際上在嘗試在此網站上提出問題之前已經解決了自己的問題,我嘗試使用過濾器和循環來獲取所需的數據。 我確定了在下面輸入的每個選項的。

這是我的示例數據:

dataArray = 
 [ 
 {id: 'ABCDEF', name: 'ABC DEF'},
 {id:'WINDY', name: 'Windy' },
 {id: 'RSTETC', name: 'RST ETC'},
 {id: 'MCHSDXCVDEULH', name: 'MCHS DXCVD EULH'}
 ]

這是我將所有名稱值放入一個新數組中所做的工作:

if (dataArray.length) {
 var nameList =[];
 angular.forEach(dataArray, function(dep, idx) {
   nameList.push(dep.name);
 });
}

您可以使用.map() 文檔開始

map()方法創建一個新數組,並在調用數組中的每個元素上調用提供的函數。

 let data = [ {id: 'ABCDEF', name: 'ABC DEF'}, {id:'WINDY', name: 'Windy' }, {id: 'RSTETC', name: 'RST ETC'}, {id: 'MCHSDXCVDEULH', name: 'MCHS DXCVD EULH'} ]; let result = data.map(({ name }) => name); console.log(result); 

您可以使用Array#map() 它創建一個新數組,並在調用數組中的每個元素上調用提供的函數。

 dataArray = [ {id: 'ABCDEF', name: 'ABC DEF'}, {id:'WINDY', name: 'Windy' }, {id: 'RSTETC', name: 'RST ETC'}, {id: 'MCHSDXCVDEULH', name: 'MCHS DXCVD EULH'} ]; console.log( dataArray.map(data => data.name) ) 

但是請注意,這仍然會在內部遍歷數組,因此無法解決。

使用地圖方法。 在您的情況下,應該是這樣的。

dataArray = dataArray.map(data => data.name);

Map將是對這個問題的完美答案,除非在我的特定情況下,我們必須支持IE版本,所以這不是一個可行的選擇。 我必須通過循環來保持代碼的輸入方式。 :(

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM