Zip数组作为对象的键和值

GGw*_*GGw 1 javascript jquery

我有这些数据

 var foo = ['US','MX','NZ'];
 var foo1 = [12',13',17];


 var Object = {};
Run Code Online (Sandbox Code Playgroud)

我试过这个东西

 var Object = {foo:foo1}
Run Code Online (Sandbox Code Playgroud)

但是当我使用alert(JSON.stringify(Object))排列对象时,它无法正常工作; 我看见:

 {"foo":["12","13","17"]}
Run Code Online (Sandbox Code Playgroud)

我想要的是让它像这样:

var Object = {
  "US":"12",
  "MX":"13",
  "NZ":17
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让它看起来像这样吗?

Nin*_*olz 8

您可以使用 .map 映射单个对象的对象Object.assign

var keys = ['US', 'MX', 'NZ'],
    values = ['12', '13', '17'],
    object = Object.assign(...keys.map((k, i) => ({ [k]: values[i] })));

console.log(object);
Run Code Online (Sandbox Code Playgroud)

一种较新的方法 Object.fromEntries

var keys = ['US', 'MX', 'NZ'],
    values = ['12', '13', '17'],
    object = Object.fromEntries(keys.map((k, i) => [k, values[i]]));

console.log(object);
Run Code Online (Sandbox Code Playgroud)


brk*_*brk 5

使用迭代任何一个阵列的forEach并使用index检索从第二元件array.Also注意正方形的使用[] 括号&变量被命名为OBJ(它可以是任何东西),但避免Object

var foo = ['US', 'MX', 'NZ'];
var foo1 = [12, '13', 17];


var obj = {};
foo.forEach(function(item, index) {
  obj[item] = foo1[index]

});
console.log(obj)
Run Code Online (Sandbox Code Playgroud)