我想要一个Object
我可以简单地更改为 JSON 格式以便稍后导出。
为此,我有array
objects
这样:
[
{
"name": "Test",
"value": "EN Test"
},
{
"name": "Test2",
"value": "DE test2"
}
]
必须像这样
{
"Test" : "EN Test",
"Test2" : "DE test2",
}
所以单个对象具有数组中所有对象的值,但只有“name
”和“value
”的值。
角度合并/复制/扩展等等正在使用2个数组,只是将它们合并而不使用选项,例如只获取名称和值的值。
使用Lodash
object = _.map(objectArray,'name');
Giving me
[ "Test", "Test2", ]
But with multiple
object = _.map(objectArray,['name','value']);
[ false, false, ]
doing
object = _.map(objectarray,_.partial(_.ary(_.pick,2),_,['name','value']));
output is
[ { "name": "Test", "value": "EN Test" }, { "name": "Test2", "value": "DE test2" } ]
not
{ "Test" : "EN Test", "Test2" : "DE test2", }
等等
object = _.mapValues(objectArray,'name');
{
"0": "Test",
"1": "Values",
}
this.lang = _.mapValues(this.exportData,_.partial(_.ary(_.pick,2),_,['name','value']));
"0": {
"name": "Test",
"value": "Test"
},
"1": {
"name": "TEst2",
"value": "Test2"
},..
我能做些什么才能实现
{
"Test" : "EN Test",
"Test2" : "DE test2",
}
答案 0 :(得分:2)
使用原生JavaScript Array#reduce
方法。
var data = [{
"name": "Test",
"value": "EN Test"
}, {
"name": "Test2",
"value": "DE test2"
}];
// iterate over array
var res = data.reduce(function(obj, v) {
// define the object property
obj[v.name] = v.value;
// return the object
return obj;
// define initial value as empty object
// for storing the result
}, {})
console.log(res);

答案 1 :(得分:0)
试试这个
var a = [
{
"name": "Test",
"value": "EN Test"
},
{
"name": "Test2",
"value": "DE test2"
}
];
var obj = {};
a.forEach(function(node){
obj[node.name] = node.value
});
console.log(obj);