如果 array.find 返回未定义,ES6/JS 分配默认值

新手上路,请多包涵

如果 array.find 返回“undefined”,如何为变量设置默认值。

这是导致我出现问题的行。在某些情况下,这个变量会被填充,但在其他情况下,它不会,在那种情况下,我希望它默认为 0。

 this.statistics.creditAmount = response.data.find(t => t.paymentType == 'RF' && t.status == 1).amount || 0;

原文由 Dally 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 436
1 个回答

我看到这已得到回答,但我认为这可能有所帮助

const { amount = 0 } = response.data.find(t => t.paymentType === 'RF' && t.status === 1) || {};
this.statistics.creditAmount = amount;

或者你可以使用减速器:

   this.statistics.creditAmount = response.data.reduce((amt, t) => t.paymentType === 'RF' && t.status === 1 ? t.amount : amt, 0);

reducer 在遍历整个数组时会使用更多的时钟周期,而 Array.prototype.find 一旦到达第一个匹配项就会停止。这也可能导致结果发生变化,因为 reducer 的编写方式会从匹配的数组中获取 最后 一项。

原文由 noahtkeller 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏