为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2022-09-02 21:11:45
如何在多个键上设置相同的值?例如,我有以下对象:const obj = {   a: 5,   b: 5,   c: 5,   d: 6}有没有简单的方法,例如,假设我有[a,b,c](键)的数组,并将它们分散在对象中并将它们设置为具有相同值的键。重点是看起来更优雅,例如:const keys =[a, b, c]const obj = {  [...keys]: 5}我知道这会抛出错误,但寻找一些速记来实现这一点
查看完整描述

5 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

取键数组,并将每个键映射到键和值的条目:5


const keys = ['a', 'b', 'c'];

const obj = {

  ...Object.fromEntries(

    keys.map(key => [key, 5])

  ),

  d: 6

};


console.log(obj);


查看完整回答
反对 回复 2022-09-02
?
噜噜哒

TA贡献1784条经验 获得超7个赞

像这样的东西的工作原理:


const obj = {};

const value = 5;

['a', 'b', 'c'].forEach(key => obj[key] = value);


查看完整回答
反对 回复 2022-09-02
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

   function(item)

   {

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

   }


查看完整回答
反对 回复 2022-09-02
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

另一种解决方案可以采用扩展的对象数组。Object.assign


const

    keys = ['a', 'b', 'c'],

    obj = { ...Object.assign(...keys.map(k => ({ [k]: 5 }))), d: 6 };

    

console.log(obj);


查看完整回答
反对 回复 2022-09-02
?
哔哔one

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]


查看完整回答
反对 回复 2022-09-02
  • 5 回答
  • 0 关注
  • 96 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信