我想转一个数组,如:
[[0,0], [1, 1], [2, 2]]
进入
[{Duration: 0, Title: 0}, {Duration: 1, Title: 1}, {Duration: 2, Title: 2}]
我在想做类似的事情:
var a = [[0,0], [1, 1], [2, 2]];
_.map(a, function() {return {Duration: , Title: } });
但是我无法引用我循环的当前值。最简单的方法是什么?
答案 0 :(得分:2)
回调函数有一个参数,当前元素(这里是一个数组):
_.map(a, function (data) {return {Duration: data[0], Title: data[1]} });
更新:制作动态按键
您可以使用下划线函数each
执行此操作,但我并不熟悉下划线:
var keys = ['Duration', 'Title'],
res;
res = _.map(a, function (data, dataIndex) {
var hashMap = {};
_.each(keys, function (key, keyIndex) {
hashMap[key] = data[keyIndex];
});
return hashMap;
});
答案 1 :(得分:2)
Underscore的map
函数接受一个数组并返回一个新数组。您可以按照自己的意愿进行映射。
var a = [[0,0], [1, 1], [2, 2]];
var b = _.map(a, function(row) {
return { "Duration" : row[0], "Title" : row[1] };
})
如果你想动态地填写这些字段,你可以这样做! Javascript很有趣。
var a = [[0,0,4], [1, 1, 5], [2, 2, 6]];
var fields = ["Duration","Title","other"];
var b = _.map(a, function(row) {
return _.object(fields, row);
})
以下是 plunk ,您可以自行试验。