从两个数组创建对象

时间:2014-07-30 13:02:20

标签: javascript jquery

如何在不使用javascript循环的情况下从两个数组创建对象。

例如:

array1 =  [1,2,3,4,5];
array2 = [A,B,C,D,E];

我想从下面的对象

obj = {
'1': 'A',
'2': 'B',
'3': 'C',
'4': 'D',
'5': 'E',
}

提前致谢

4 个答案:

答案 0 :(得分:5)

var obj = {}

array1 = [1, 2, 3, 4, 5];
array2 = ['A', 'B', 'C', 'D', 'E'];

array1.forEach(function(value, index) {

  obj[value] = array2[index];

});

console.log(obj);

答案 1 :(得分:2)

尝试使用$.each()迭代其中一个数组并根据您的要求构建对象,

var array1 = [1,2,3,4,5],array2 = ['A','B','C','D','E'];
var obj = {};

$.each(array2,function(i,val){
  obj[array1[i]] = val;
});

DEMO

答案 2 :(得分:0)

ES6,阵列减少解决方案。



ID  name    Date        CheckIn     CheckOut
01  Joe     2017-10-31  08:00:00    17:10:00
02  Jean    2017-10-31  08:10:00    17:05:00




答案 3 :(得分:0)

只是为了在不使用任何迭代方法的情况下创建类似的东西。

const array1 =  [1,2,3,4,5];
const array2 = ['A','B','C','D','E'];
let combineKeyValueProxy = new Proxy({}, {
    set: function(target, prop, value, receiver) {
       target[array1[prop]] = value;
       return true
    }
});
const output = Object.assign(combineKeyValueProxy, array2);
console.log(output) // Proxy {1: "A", 2: "B", 3: "C", 4: "D", 5: "E"}