我有一个包含对象的数组,我想将对象内部的所有params值合并为一个对象
wide <- do.call(cbind, mylist_new)
rowMeans(wide[names(wide) == "C"])
# [1] 2.0 6.5
我已经尝试过了
Array [
Object {
"key": "Deze week",
"params": Object {
"thisWeekfilterDistance": [Function anonymous],
"thisWeekSearch": [Function anonymous],
"thisWeektoggleFilter": [Function anonymous],
"thisWeektoggleRangeFilter": [Function anonymous],
},
"routeName": "Deze week",
},
Object {
"key": "Binnenkort",
"params": Object {
"soonfilterDistance": [Function anonymous],
"soonSearch": [Function anonymous],
"soontoggleFilter": [Function anonymous],
"soontoggleRangeFilter": [Function anonymous],
},
"routeName": "Binnenkort",
},
Object {
"key": "Festivals",
"params": Object {
"festivalfilterDistance": [Function anonymous],
"festivalSearch": [Function anonymous],
"festivaltoggleFilter": [Function anonymous],
"festivaltoggleRangeFilter": [Function anonymous],
},
"routeName": "Festivals",
},
]
或
for (var i = 0; i < 3; i++) {
if (typeof arr[i].params !== 'undefined') {
//console.log(arr[i].params);
test = arr[i].params;
}
}
但是我不知道如何存储那些结果以使所有对象参数只有1个对象。
所以预期结果是:
for (var i = 0; i < 3; i++) {
arr[i].param.reduce(function(result, current) {
return Object.assign(result, current);
}, {})
}
谢谢。
答案 0 :(得分:2)
您可以使用map
来获取params
的数组。然后使用Object.assign()
将对象数组合并为一个对象:
const input = [{"key":"Deze week","params":{"thisWeekfilterDistance":_=>{},"thisWeekSearch":_=>{},"thisWeektoggleFilter":_=>{},"thisWeektoggleRangeFilter":_=>{},},"routeName":"Deze week",},{"key":"Binnenkort","params":{"soonfilterDistance":_=>{},"soonSearch":_=>{},"soontoggleFilter":_=>{},"soontoggleRangeFilter":_=>{},},"routeName":"Binnenkort",},{"key":"Festivals","params":{"festivalfilterDistance":_=>{},"festivalSearch":_=>{},"festivaltoggleFilter":_=>{},"festivaltoggleRangeFilter":_=>{},},"routeName":"Festivals",},]
const output = Object.assign({}, ...input.map(a => a.params))
console.log(output)
答案 1 :(得分:1)
您可以使用Array#reduce
直接数组而不使用数组对象参数
var arr = [{ "key": "Deze week", "params": { "thisWeekfilterDistance": "[Function anonymous]", "thisWeekSearch": "[Function anonymous]", "thisWeektoggleFilter": "[Function anonymous]", "thisWeektoggleRangeFilter": "[Function anonymous]", }, "routeName": "Deze week", }, { "key": "Binnenkort", "params": { "soonfilterDistance": "[Function anonymous]", "soonSearch": "[Function anonymous]", "soontoggleFilter": "[Function anonymous]", "soontoggleRangeFilter": "[Function anonymous]", }, "routeName": "Binnenkort", }, { "key": "Festivals", "params": { "festivalfilterDistance": "[Function anonymous]", "festivalSearch": "[Function anonymous]", "festivaltoggleFilter": "[Function anonymous]", "festivaltoggleRangeFilter": "[Function anonymous]", }, "routeName": "Festivals", }, ]
var res = arr.reduce((a,b)=> Object.assign(a,b.params),{})
console.log(res)