将键的对象映射到值数组

时间:2020-10-27 07:59:47

标签: javascript ecmascript-6

我有一个这样的键对象:

var x = {a,b}

我有一个像这样的值数组:

var y = [1,2]

如何在不使用两个数组的情况下以最优化的方式将键映射到这样的对象:

{ a: 1, b: 2 }

2 个答案:

答案 0 :(得分:2)

使用Object.keys()遍历x的键。然后使用map()将它们与y的相应元素组合。最后,使用Object.fromEntries()将此数组转换为新对象。

var x = {a:null,b:null};
var y = [1, 2];
result = Object.fromEntries(Object.keys(x).map((key, i) => [key, y[i]]));
console.log(result);

答案 1 :(得分:0)

您需要三个部分:

  1. 将keys数组和values数组作为新数组。
  2. 转置此数组以获得具有键/值对的数组。
  3. Object.fromEntries对中创建一个对象。

const
    transpose = array => array.reduce((r, a) => a.map((v, i) => [...(r[i] || []), v]), []),
    x = ['a', 'b'],
    y = [1, 2],
    result = Object.fromEntries(transpose([x, y]));

console.log(result);

相关问题