2016-02-15 51 views
0

這是我的數組:如何從一個多元素的對象數組中獲取單個元素數組?

mapping = [{sl_no : 1, type : "A", parent : ""},{sl_no : 2, type : "B", parent : "A"},{sl_no : 3, type : "D", parent : "B"}] 

我想在波紋管格式的數組:

mapped_sl_no = [{sl_no : 1},{sl_no : 2},{sl_no : 3}] 
+0

確切你想要的東西放在這裏 - >>>> VAR映射= mapping.map(函數(項目){{回報sl_no:項目.sl_no};}); –

回答

0

Map是你的朋友?

var mapped = mapping.map(function(item) { return item.sl_no; }); 
0

我建議使用Array#map()與裏面有一個臨時對象。

var mapping = [{ sl_no: 1, type: "A", parent: "" }, { sl_no: 2, type: "B", parent: "A" }, { sl_no: 3, type: "D", parent: "B" }], 
 
    mapped_sl_no = getMapped(mapping, 'sl_no'); 
 

 
function getMapped(array, k) { 
 
    return array.map(function (a) { 
 
     var o = {}; 
 
     o[k] = a[k]; 
 
     return o; 
 
    }); 
 
} 
 

 
document.write('<pre>' + JSON.stringify(mapped_sl_no, 0, 4) + '</pre>');

+0

謝謝大家的解決方案。 –

+0

@HassanAhamed,請投票並接受你最幫助的答案。 –

0

解決方案與map功能:

var mapping = [{sl_no : 1, type : "A", parent : ""},{sl_no : 2, type : "B", parent : "A"},{sl_no : 3, type : "D", parent : "B"}]; 

var arr = mapping.map(function(obj){ 
    return {'sl_no': obj.sl_no}; 

}) 

console.log(arr); // the output is: [{sl_no : 1},{sl_no : 2},{sl_no : 3}] 
0
var mapped_sl_no = []; 

mapping.forEach(function(mapVal){ 
    mapped_sl_no.push({sl_no:mapVal.sl_no}); 
}); 

這應該爲你做它。

否則,您可以使用庫,例如​​下劃線(http://underscorejs.org/)或lowdash(https://lodash.com/

相關問題