将两个数组(键和值)合并到一个对象中

时间:2011-08-03 05:18:04

标签: javascript node.js coffeescript underscore.js

我可以使用常见的Javascript / Coffeescript特定习语来完成此操作吗?主要是出于好奇。

我有两个数组,一个由所需的键组成,另一个由所需的值组成,我希望将其合并到一个对象中。

keys = ['one', 'two', 'three']
values = ['a', 'b', 'c']

3 个答案:

答案 0 :(得分:14)

var r = {},
    i,
    keys = ['one', 'two', 'three'],
    values = ['a', 'b', 'c'];

for (i = 0; i < keys.length; i++) {
    r[keys[i]] = values[i];
}

答案 1 :(得分:6)

keys = ['one', 'two', 'three']
values = ['a', 'b', 'c']

d = {}

for i, index in keys
    d[i] = values[index]

说明: 在coffeescript中,您可以迭代数组并获取每个项目及其在数组或索引上的位置。 因此,您可以使用此索引将键和值分配给新对象。

答案 2 :(得分:3)

只要两个数组的长度相同,就可以这样做:

var hash = {};
var keys = ['one', 'two', 'three']
var values = ['a', 'b', 'c']

for (var i = 0; i < keys.length; i++)
    hash[keys[i]] = values[i];

console.log(hash['one'])
console.log(hash.two);