【问题标题】:How do I loop through array with js objects and make conditional replacement of values如何使用 js 对象循环遍历数组并有条件地替换值
【发布时间】:2021-05-03 20:12:55
【问题描述】:

编程游戏的新手,我有一个数组,其中包含一小部分 js 对象,其中包含对性格测试问题的回答。

每个回答都与一个人格因素相关,有一个问题,描述这与该因素是正相关还是负相关,最后是从 1 到 5 的答案。

我需要遍历数组,并且每当键正的值为 0 时,我想翻转响应以使 1 = 5、2 = 4、3 = 3、4 = 2、5 = 1。

const response = [
  {
    factor: "conscientinous",
    question: "Prepare for things in advance",
    positiv: 1,
    rating: 3,
  },  
{
    factor: "conscientious",
    question: "Let things get into a mess",
    positiv: 0,
    rating: 1,
  },
];

我试图在功能范式中做到这一点,并认为 .map 可能是一种前进的方式。

【问题讨论】:

  • map 将创建一个引用相同对象的新数组。为什么不直接使用 forEachresponse.forEach(obj => if (obj.positiv == 0) obj.rating = 6 - obj.rating).

标签: javascript arrays object replace


【解决方案1】:

Array.map()对数组进行迭代,如果positiv为0,则通过传播原始对象返回一个新对象,并通过从6中减去旧评级得到新的rating

const response = [{"factor":"conscientinous","question":"Prepare for things in advance","positiv":1,"rating":3},{"factor":"conscientious","question":"Let things get into a mess","positiv":0,"rating":1}];

const result = response.map(o => o.positive ? o : {
  ...o,
  rating: 6 - o.rating
})

console.log(result);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-08
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多