如何从对象的多元素数组中获取单个元素数组?

时间:2016-02-15 07:53:37

标签: javascript

这是我的阵列:

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}]

4 个答案:

答案 0 :(得分:0)

Map是你的朋友......

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

答案 1 :(得分: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>');
&#13;
&#13;
&#13;

答案 2 :(得分: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}]

答案 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/)这样的库