Arrays 用下划线将矩阵转换为javascript中的对象数组

Arrays 用下划线将矩阵转换为javascript中的对象数组,arrays,underscore.js,Arrays,Underscore.js,我想打开一个数组,例如: [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: } }); 但是我不能引用当前循环的值。最简单的方法是什么?回调函数有一个参数,当前元素是数组: _.ma

我想打开一个数组,例如:

[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: }   });

但是我不能引用当前循环的值。最简单的方法是什么?

回调函数有一个参数,当前元素是数组:

_.map(a, function (data) {return {Duration: data[0], Title: data[1]} });
更新:生成动态关键点

您可以使用下划线函数来实现这一点,尽管我对下划线不是很熟悉:

var keys = ['Duration', 'Title'],
    res;

res = _.map(a, function (data, dataIndex) {
    var hashMap = {};

    _.each(keys, function (key, keyIndex) {
        hashMap[key] = data[keyIndex];
    });

    return hashMap;
});
下划线函数接受一个数组并返回一个新数组。你可以根据自己的意愿绘制地图

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);
})

这是一个你可以自己尝试的方法。

如果我有一个像['Duration'、'Title'、'etc']这样的值数组,那么我需要动态地设置对象值呢?我应该在此地图中放置另一张地图吗?谢谢,我会在时间结束后检查。谢谢,我真的很感激!我会仔细阅读代码。我比你投了更高的票,但我会检查aduch,因为他技术上首先回答了问题。