如何将数组的数组转换为对象?
How to convert an array of arrays to an Object?
在 javascript 中将元组列表转换为字典的最佳方法是什么?
一种方法是这样的:
var data = [['a',1], ['b',2],['c',3]]
var group_to_lengths = {}
data.forEach(function(d) {
group_to_lengths[d[0]] = d[1];
});
是否有更简单或更惯用的方法来完成同样的事情?也许像 python (group_to_lengths = dict(data)
)?
我建议使用 Array.prototype.reduce
,这在这种情况下更符合习惯,例如
console.log(data.reduce(function(result, currentItem) {
result[currentItem[0]] = currentItem[1];
return result;
}, {}));
# { a: 1, b: 2, c: 3 }
但是,如果你使用像underscore.js, then it would be just a one-liner with _.object
这样的函数式编程库,就像这样
console.log(_.object(data));
# { a: 1, b: 2, c: 3 }
在 javascript 中将元组列表转换为字典的最佳方法是什么?
一种方法是这样的:
var data = [['a',1], ['b',2],['c',3]]
var group_to_lengths = {}
data.forEach(function(d) {
group_to_lengths[d[0]] = d[1];
});
是否有更简单或更惯用的方法来完成同样的事情?也许像 python (group_to_lengths = dict(data)
)?
我建议使用 Array.prototype.reduce
,这在这种情况下更符合习惯,例如
console.log(data.reduce(function(result, currentItem) {
result[currentItem[0]] = currentItem[1];
return result;
}, {}));
# { a: 1, b: 2, c: 3 }
但是,如果你使用像underscore.js, then it would be just a one-liner with _.object
这样的函数式编程库,就像这样
console.log(_.object(data));
# { a: 1, b: 2, c: 3 }