Javascript 函数数组的分解

Javascript 函数数组的分解,javascript,Javascript,鉴于: 如何生成添加剂和: a&b 在这种情况下,它将返回false。使用: 常数a==>true 常数b==>false 常数t=[a,b] console.logt.everyf=>f 使用: 常数a==>true 常数b==>false 常数t=[a,b] console.logt.everyf=>f 您可以使用true作为startValue来减少数组,并使用函数调用的结果来执行一个数组 这种方法保留函数调用的值 常数a==>true 常数b==>false 常数t=[a,b] c

鉴于:

如何生成添加剂和:

a&b

在这种情况下,它将返回false。

使用:

常数a==>true 常数b==>false 常数t=[a,b] console.logt.everyf=>f 使用:

常数a==>true 常数b==>false 常数t=[a,b]
console.logt.everyf=>f 您可以使用true作为startValue来减少数组,并使用函数调用的结果来执行一个数组

这种方法保留函数调用的值

常数a==>true 常数b==>false 常数t=[a,b]
console.logt.reducer,f=>r&&f,true 您可以使用true作为startValue来减少数组,并使用函数调用的结果来执行一个数组

这种方法保留函数调用的值

常数a==>true 常数b==>false 常数t=[a,b] console.logt.reducer,f=>r&&f,true 在您的情况下,使用a&&b将非常有效。如果要使用t数组,可以这样做:t[0]&&t[1]。但是,如果需要多个输入,我认为最好使用数组函数array.prototype.reduce:

t、 reduceprevious,item=>previous&&item,true 在您的情况下,使用a&&b将非常有效。如果要使用t数组,可以这样做:t[0]&&t[1]。但是,如果需要多个输入,我认为最好使用数组函数array.prototype.reduce:

t、 reduceprevious,item=>previous&&item,true 使用Array.find获取具有falsy值的第一个函数。如果未找到,则使用数组中的最后一个函数,如果数组为空,则使用返回未定义的回退函数。调用您得到的函数

常数fn=arr=> arr.findf=>!f | | arr[arr.length-1]| |=>未定义 console.logfn[=>true,=>false]//false console.logfn[=>1,=>2]//2 console.logfn[=>1,=>0,=>2]//0 console.logfn[]//undefined使用Array.find获取具有falsy值的第一个函数。如果未找到,则使用数组中的最后一个函数,如果数组为空,则使用返回未定义的回退函数。调用您得到的函数

常数fn=arr=> arr.findf=>!f | | arr[arr.length-1]| |=>未定义 console.logfn[=>true,=>false]//false console.logfn[=>1,=>2]//2 console.logfn[=>1,=>0,=>2]//0
console.logfn[]//未定义您当前编写的内容有什么问题?a&&b?你是说你希望t是一个单一的真值还是假值取决于所有的值是真是假?你现在写的有什么问题吗?a&&b?你是说你不想成为一个单一的真值还是假值取决于所有的值是否都是真的?哦,很抱歉复制,但我在我之前没有看到你的答案,使用类似[=>false,10000个项目]的数组,这将生成10000个无用的循环。哦,很抱歉复制,但我在我之前没有看到你的答案,使用类似的数组[=>错误,超过10000项]这将产生10000个无用的loops.dv,不是我,但它会将函数的值更改为true或false。实际上返回值是一个布尔值,但它可能是其他值,并且该值会通过使用every进行更改。@NinaScholz every检查返回值的真实性,这是&&将要比较的,我认为它们在功能上应该是相等的uivalent否?也不是dv。JS中1&&2的结果是2,0&&2将是0。对于代码,[=>1,=>2]应该是真的,应该是2。@Oridori啊,我现在明白了,忘记了JS中的行为。谢谢,在我的回答中添加了这个细节。@zfrisch谢谢你的解释,没问题。你是对的,与Nina的solution.dv相比,我的答案可能有缺陷。不是我,但它会将函数的值更改为true或false。实际值ly返回值是一个布尔值,但它可能是其他值,此值通过使用every进行更改。@NinaScholz every检查返回值的真实性,这是&&将要比较的,我认为它们在功能上应该是等价的否?也不是dv。JS中1&&2的结果是2,0&&2将是0。在您的代码中[=>1,=>2]应该是真的,应该是2。@Oridori啊,我现在明白了,忘了JS中的行为。谢谢,在我的回答中添加了这个细节。@zfrisch谢谢你的解释,没问题。你是对的,我的回答可能比Nina的解决方案有缺陷。
const a = () => true
const b = () => false

const t = [a, b]