javascript - 将javascript中的数组组合成一个哈希数组,其中一个数组是所有键,其余是值

标签 javascript underscore.js

我有几个如下所示的数组:

var foo = ['id', 'first', 'last'];
var student1 = ['1', 'sam', 'smith'];
var student2 = ['2', 'jon', 'murphy'];

是否有一个有效的工具,也许使用像 underscore.jsvanilla javascript 这样的库,可以让你将这三个数组转换成一个对象,看起来像以下:

var finalObj = [ {'id' => 1, 'first' => 'sam', 'last' => 'smith'}, {'id' => 2, 'first' => 'jon', 'last' => 'murphy'} ];

最佳答案

纯 Javascript 的解决方案

var foo = ['id', 'first', 'last'],
    student1 = ['1', 'sam', 'smith'],
    student2 = ['2', 'jon', 'murphy'],
    result = [student1, student2].map(function (a) {
        var o = {};
        foo.forEach(function (k, i) {
            o[k] = a[i];
        });
        return o;
    });

console.log(result);

ES6 与 Array#reduce

var keys = ['id', 'first', 'last'],
    st1 = ['1', 'sam', 'smith'],
    st2 = ['2', 'jon', 'murphy'],
    result = [st1, st2].map(a => keys.reduce((o, k, i) => (o[k] = a[i], o), {}));

console.log(result);

关于javascript - 将javascript中的数组组合成一个哈希数组,其中一个数组是所有键,其余是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445435/

相关文章:

javascript - 为什么要用IFFE来做构造函数

javascript - Keen.io 中的嵌套 JSON 对象

javascript - 按数字和字符分隔字符串

javascript - 在单独的容器中包含丰富信息的 Highcharts

javascript - 使用包含字母和数字的名称属性对对象数组进行排序

javascript 将对象转换或包装为复杂 JSON 的数组

javascript - 按数组中对象内的对象属性过滤对象数组

javascript - 测试传递给 Angular Material Dialog 实例的 Controller

javascript - 按值对对象进行排序

javascript - Backbone : Using views inside _. 模板