在 reduce 中,当我在执行 .some 和内部执行 .includes 的条件行中添加条件行时,previousValue 变为未定义

In reduce, previousValue becomes undefined when I add conditional lines inside that performs .some and inside it performs .includes

prevValue 变为 undefined,但是当我删除上面的条件行 (170) undefined 时,它就消失了。

但是当我在第 173 行添加 prevValue 作为条件时,它不会再执行下面的行。

我想要的是当一个条件满足时,然后我可以将一个项目压入prevValue。

我有完整的示例,我们可以在 codesandbox 中检查这里 https://codesandbox.io/s/goofy-feather-t79kb6?file=/src/index.js

抱歉,我在这个简单的问题上花费了数小时,但对我来说却很费时间。非常感谢您的帮助。谢谢。

回调函数的 returned 值成为新的累加值,每次迭代。

所以,如果我们不更新它,我们必须 return 旧值本身。

arr.reduce((acc,item)=>{
  if(condition) return acc.concat(item);
  //else
  return acc; //-->should not miss this.
})

我认为这个 eslint 规则 https://eslint.org/docs/rules/array-callback-return 将有助于尽早发现此类问题。