这是我的目标:
initialState:any = [{'checked':true}, {'checked':false}, {'checked':true}, {'checked':false}, {'checked':true}, {'checked':false}];
这是我期望的输出:
var params = {
"device0":"true",
"device1":"true",
"device2":"false",
"device3":"true",
"device4":"false",
"device5":"true",
"device6":"false",
"device7":"true"
}
我有一个对象数组。我想从一个对象中获取值,并希望构建如上所述的单个对象。
答案 0 :(得分:1)
您提供的数组中的少数记录与预期的结果不同。
var initialState = [{'checked':true},{'checked':false},{'checked':true},{'checked':false},{'checked':true},{'checked':false}],
params = {};
initialState.forEach((v,i) => params['device' + i] = v.checked);
console.log(params);
答案 1 :(得分:0)
我会使用reduce
var initialState = [{'checked':true},{'checked':false},{'checked':true},{'checked':false},{'checked':true},{'checked':false}],
params = initialState.reduce( function( o, item, index ) {
o["device" + index] = item.checked
return o;
}, {})
console.log(params);
答案 2 :(得分:0)
您可以使用Object.assign
和Array#map
作为sinlge对象。
var any = [{ checked: true }, { checked: false }, { checked: true }, { checked: false }, { checked: true }, { checked: false }],
params = Object.assign({}, ...any.map((a, i) => ({ ['device' + i]: a.checked.toString() })));
console.log(params);
.as-console-wrapper { max-height: 100% !important; top: 0; }