如何在多个键上设置相同的值

如何在多个键上设置相同的值?例如,我有以下对象:


const obj = {

   a: 5,

   b: 5,

   c: 5,

   d: 6

}

有没有简单的方法,例如,假设我有[a,b,c](键)的数组,并将它们分散在对象中并将它们设置为具有相同值的键。重点是看起来更优雅,例如:


const keys =[a, b, c]

const obj = {

  [...keys]: 5

}

我知道这会抛出错误,但寻找一些速记来实现这一点


开满天机
浏览 97回答 5
5回答

汪汪一只猫

取键数组,并将每个键映射到键和值的条目:5const keys = ['a', 'b', 'c'];const obj = {  ...Object.fromEntries(    keys.map(key => [key, 5])  ),  d: 6};console.log(obj);

噜噜哒

像这样的东西的工作原理:const obj = {};const value = 5;['a', 'b', 'c'].forEach(key => obj[key] = value);

慕桂英4014372

   function(item)   {      return  Object.keys(item).reduce((a, b) => ({ ...a, [b]:5 }),{});   }

慕田峪7331174

另一种解决方案可以采用扩展的对象数组。Object.assignconst    keys = ['a', 'b', 'c'],    obj = { ...Object.assign(...keys.map(k => ({ [k]: 5 }))), d: 6 };    console.log(obj);

哔哔one

您可以构建一个 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}如果需要生成以下数组:5Array(3).fill(5);//=> [5, 5, 5]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript