5 回答
TA贡献1898条经验 获得超8个赞
取键数组,并将每个键映射到键和值的条目:5
const keys = ['a', 'b', 'c'];
const obj = {
...Object.fromEntries(
keys.map(key => [key, 5])
),
d: 6
};
console.log(obj);
TA贡献1784条经验 获得超7个赞
像这样的东西的工作原理:
const obj = {};
const value = 5;
['a', 'b', 'c'].forEach(key => obj[key] = value);
TA贡献1871条经验 获得超13个赞
function(item)
{
return Object.keys(item).reduce((a, b) => ({ ...a, [b]:5 }),{});
}
TA贡献1828条经验 获得超13个赞
另一种解决方案可以采用扩展的对象数组。Object.assign
const
keys = ['a', 'b', 'c'],
obj = { ...Object.assign(...keys.map(k => ({ [k]: 5 }))), d: 6 };
console.log(obj);
TA贡献1854条经验 获得超8个赞
您可以构建一个 zip 函数,该函数采用键数组和值数组,并返回一个对象,其中每个键/值对都取自其各自的索引:
const zip =
(ks, vs) =>
ks.reduce((o, k, i) =>
(o[k] = vs[i], o), {});
zip(['a', 'b', 'c'], [5, 5, 5]);
//=> {a: 5, b: 5, c: 5}
如果需要生成以下数组:5
Array(3).fill(5);
//=> [5, 5, 5]
添加回答
举报