首页 > 解决方案 > 将对象键转为数组索引并返回一个新数组

问题描述

我试图解决这个问题,我有一个包含键值对的对象,并寻找一种将每个键分配给特定索引并返回新数组的方法。请注意:未找到键时,索引应分配为 0,因为它从 1 到 12 开始,而不是在索引 0 处。

var obj = {
  4: 7,
  6: 8,
  7: 6,
  8: 8,
  9: 3,
  10: 6,
  11: 4,
  12: 3
};

结果将是:

var output = [0, 0, 0, 7, 0, 8, 6, 8, 3, 6, 4, 3];

谢谢你的帮助。

标签: javascriptarrays

解决方案


您可以使用Array.prototype.map. 更多关于地图

var obj = {
  4: 7,
  6: 8,
  7: 6,
  8: 8,
  9: 3,
  10: 6,
  11: 4,
  12: 3
};
let a = [];
Object.keys(obj).map(val => a[val-1] = obj[val]);
a = Array.from(a, i => i || 0);
console.log(a);


推荐阅读