gpt4 book ai didi

javascript - 函数式编程 javascript 链过滤器操作默认值

转载 作者:行者123 更新时间:2023-11-30 11:19:11 27 4
gpt4 key购买 nike

有没有办法过滤一个数组,如果它没有返回任何对象默认为单链中的默认选项?

例如

[1,2,3]
.filter(isDivisibleByTen)
// otherwise return whatever

我可以这样写

const result [1,2,3].filter(isDivisibleByTen) 
result ? result [0]

最佳答案

方案1.无副作用

也许 reduce是唯一提供数组并可以返回任意值的 Array 方法,因此您可以使用它:

[1,2,3]
.filter(isDivisibleByTen)
.reduce((_1, _2, _3, array) => array, 'defaultValue');

这个解决方案有点浪费处理器时间(遍历数组没有任何好处),但它可以轻松地与任何链结合。

解决方案 2. 优雅的解决方案。

您可以向 Array 原型(prototype)添加自定义方法以使其在链中可用:

Array.prototype.filledOrDefault = function(defaultValue) {
return this.length ? this : defaultValue;
}

[1,2,3]
.filter(isDivisibleByTen)
.filledOrDefault('defaultValue');

不推荐使用此解决方案,因为它会修改页面上其他脚本使用的全局值 (Array)。

关于javascript - 函数式编程 javascript 链过滤器操作默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50459935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com