gpt4 book ai didi

Javascript 如果找到则返回,否则设置为未定义

转载 作者:行者123 更新时间:2023-11-28 13:03:58 24 4
gpt4 key购买 nike

这是我当前的解决方案

var snap = this.snaps.find((snap) => {
if(pos > snap.min && snap.max > pos){
return snap;
}
})
if(snap !== undefined){
this.scrollTo = snap.down ? snap.max : snap.min;
}else{
this.scrollTo = undefined
}

我想实现同样的目标,但没有 if else 语句。我尝试过:

this.scrollTo = this.snaps.find((snap) => {
if(pos > snap.min && snap.max > pos){
return snap.down ? snap.max : snap.min;;
}
})

但这不起作用。

最佳答案

假设this.snaps.findArray.prototype.find ,只有从函数返回的 bool 值才重要。该函数中的 return snap;return true; 具有相同的效果。在您的情况下,返回条件的 bool 值而不是使用 if 语句是有意义的。您可以使用不带大括号的箭头函数来返回表达式的结果,而无需使用 return,因此您的 find 调用可以缩短为:

var snap = this.snaps.find( snap => pos > snap.min && snap.max > pos );

您可以使用逻辑&&运算符来删除其他if/else。如果 && 为假(undefined 为假),则计算其第一个操作数,否则计算其第二个操作数:

this.scrollTo = snap && (snap.down ? snap.max : snap.min);

关于Javascript 如果找到则返回,否则设置为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48081827/

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