【问题标题】:How to square all values of an object in JavaScript?如何在 JavaScript 中对对象的所有值求平方?
【发布时间】:2021-02-16 14:12:26
【问题描述】:

这是一个对象:

var a = { a: 1, b: 2, c: 3};

我需要将此对象中的所有值和键平方以保持不变,因此新对象看起来像这样:

var a1 = {a: 1, b: 4, c: 9}

我的代码 - 我提取了键和值并创建了两个单独的数组:

var a = {a:1, b: 2, c:3};
let key = Object.keys(a);
let value = Object.values(a);
v = [];
for (var i=0; i<value.length;i++){
  value[i]**2;
  v.push(value[i]**2);
}
console.log(v);

所以在这里我得到了所有元素的平方值的数组,但我不知道如何将它返回给对象并获取

{a: 1, b: 4, c: 9}

【问题讨论】:

标签: javascript arrays for-loop object


【解决方案1】:

为了将键和值保持在一起,您可以使用对象的条目并映射新对并从新条目构建对象。

方法:

const
    object = { a: 1, b: 2, c: 3 },
    result = Object.fromEntries(Object
        .entries(object)
        .map(([key, value]) => [key, value * value])
    );

console.log(result);

【讨论】:

    【解决方案2】:

    您也可以在Object.entries 上使用Array.reduce。即

    const a = {
      a: 1,
      b: 2,
      c: 3
    };
    
    const result = Object.entries(a).reduce((acc, [key, value]) => {
      acc[key] = value ** 2;
      return acc
    }, {})
    【解决方案3】:

    var a = {
      a: 1,
      b: 2,
      c: 3
    };
    
    Object.keys(a).map(function(key, index) {
      a[key] = a[key] * a[key];
    });
    
    console.log(a)

    【讨论】:

      猜你喜欢
      • 2014-02-14
      • 2022-12-08
      • 2013-05-03
      • 2010-10-27
      • 2018-07-11
      • 1970-01-01
      • 2016-09-24
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多