首先,我来自 Obj-C 和 Python,所以请随时编辑我的 JavaScript 术语中的任何错误。
我正在寻找一种在 JavaScript 中连接多个字典的有效方法,其中每个键可以存在于多个字典中,并且它的值是数组。
例如,我有:
{foo: [1,2], bar: [3,4]}
{foo: [5,6], baz: [7,8]}
我想加入同一个键的所有值,这意味着我应该返回:
{foo: [1,2,5,6], bar: [3,4], baz: [7,8]}
我开始做类似以下伪代码的事情,但我觉得应该有一种更有效的方法。
// Pseudo code
return_value = {}
for (subset in full_array)
for (kv in subset)
data = return_value[kv] || []
data.push(subset[kv])
return_value[kv] = data
最佳答案
与 Lo-Dash :
var data = [
{foo: [1,2], bar: [3,4]},
{foo: [5,6]},
];
_.reduce(data, function (result, obj) {
_.each(obj, function (array, key) {
result[key] = (result[key] || []).concat(array)
})
return result
}, {})
查看此 fiddle .
关于javascript - 在 JavaScript 中连接数组字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25373273/