【问题标题】:.push() array method don't seem to be working on accumulator .reduce method.push() 数组方法似乎不适用于累加器 .reduce 方法
【发布时间】:2021-12-12 05:35:36
【问题描述】:

为什么.push() 方法对.reduce() 方法中的累加器对象中的数组不起作用

let a = [];
for (let i = 0; i <= 20; i++) {
  a.push(i);
}

let {
  even,
  odd
} = a.reduce((acc, val) => {
  val % 2 === 0 ? acc.even.push(val) : acc.odd.push(val);
}, {
  even: [],
  odd: []
});

【问题讨论】:

  • 记得返回acc;
  • 条件(三元)运算符产生错误是您尝试返回值,因为它会自动返回
  • @PAPPI-HS,@danh 的意思是;不返回三元运算结果,而是在下一行使用return acc
  • ????你对的兄弟我的坏,谢谢你的帮助✌️

标签: javascript methods


【解决方案1】:

这是 OP 函数,返回累加器。

  let a = [];
  for (let i = 0; i <= 20; i++) {
    a.push(i);
  }
  
  let result = a.reduce((acc, val) => {
    val % 2 === 0 ? acc.even.push(val) : acc.odd.push(val);
    return acc;
  }, { even: [], odd: [] });
  
  console.log(result)

【讨论】:

  • 感谢您的帮助,终于成功了?
猜你喜欢
  • 1970-01-01
  • 2014-06-04
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
相关资源
最近更新 更多