具有由 Object.keys

问题描述

var c = {
'aa-bb': [{ a: 1,v: 2}],'cc-xz': [{ c: 2}]
}
console.log(Object.keys(c))

我需要创建一个对象,其键(名称)必须来自 Object.keys。

对于每个键名,必须如下定义一个数组类型的对象。

你能帮我一把吗?

结果:

const res = {
  'aa-bb': Array(number).fill(0),'cc-xz': Array(number).fill(0)
};

解决方法

var c = {
  'aa-bb': [{
    a: 1,v: 2
  }],'cc-xz': [{
    c: 2
  }]
}

const keys = Object.keys(c);
let res = {},number = 5;
keys.forEach(key => res[key] = Array(number).fill(0));
console.log(res);

,

映射键,并创建 [key,array] 对,然后使用 Object.fromEntries() 转换回对象:

const fn = (obj,arrLengh) =>
  Object.fromEntries(
    Object.keys(obj)
      .map(key => [key,Array(arrLengh).fill(0)])
  );

const c = {"aa-bb":[{"a":1,"v":2}],"cc-xz":[{"c":2}]};

const result = fn(c,5);

console.log(result);