javascript - 在 JavaScript 中连接数组字典

标签 javascript arrays dictionary

首先,我来自 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/

相关文章:

javascript - 在javascript中将树从db格式转换为json格式

Java静态定义字典/HashMap

javascript - 自动完成不返回输出

javascript - Visual Studio 2010中的Extjs

javascript - 将javascript关联数组转换为多对象数组

file - 如何在 Clojure 中从文件中读取多个变量?

python - 除以字典中的值 (Python)

javascript - 鼠标在屏幕左侧向左移动图像,鼠标在屏幕右侧时相同

javascript - 全宽图像到 div 在 CSS3 和 HTML5 中交叉淡入淡出

arrays - 分割数组并找到最大值 |max (L) -max (R)|