数组到下划线中的多个对象

时间:2016-12-29 07:45:18

标签: arrays object underscore.js

我有一个如下所示的数组:

[{
    LocalBond:"0",
    LocalCash:"2.42",
    LocalEquity:"0",
    ForeignEquity: "4",
    ...
}]

我想要的样子:

[{
    Source: "LocalBond",
    Value: "0"
},
    Source: "LocalCash",
    Value: "2.42"
},
    Source: "LocalEquity",
    Value: "0"
},
{...}
]

我想将单个对象转换为多个对象。我还需要排除' ForeignEquity' 结果。

我尝试使用_.map,并返回我想要的字段,但我有点挣扎。我是在正确的轨道上吗?当我将多个参数传递给我的函数时,我无法获得所需的结果。

1 个答案:

答案 0 :(得分:1)

最简单的代码是纯javascript:

使用for..in访问对象的属性,并在for循环内部构建数组。

http://www.w3schools.com/jsref/jsref_forin.asp

示例:

https://jsfiddle.net/jewrsL8a/5/

var collection = [{
    LocalBond:"0",
    LocalCash:"2.42",
    LocalEquity:"0",
    ForeignEquity: "4"
}];

var result = [];

for (var property in collection[0]) {
    if(property!=='ForeignEquity'){
      result.push({'Source': property, 'Value': collection[0][property]});
    }
}

console.log(result);