You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用箭头语法编写JS中结合some()函数的if语句?

当然可以用普通函数改写这个if语句!

你遇到的问题其实是普通函数和箭头函数的一个小区别——返回值的写法。

箭头函数在只有单条表达式的时候,会自动返回表达式的结果,不用写return:

// 箭头语法:隐式返回 e.label === filter_object.label 的结果
if (!filters.some(e => e.label === filter_object.label)) {
  // Do Something
}

但普通函数没有这个“隐式返回”的特性,你原来的写法里,函数内部只写了判断语句,却没有显式返回结果,这时候函数默认返回undefined。而some方法会把undefined当作false处理,导致some永远返回false,外层的!就会把它转成true,不管数组里有没有匹配的元素,都会执行if块里的代码。

只需要给普通函数加上return,就能正常工作了:

// 正确的普通函数写法:显式返回判断结果
if (!filters.some(function(e) {
  return e.label === filter_object.label;
})) {
  // Do something
}

两种写法的逻辑完全一致,只是普通函数需要明确告诉代码要返回什么结果~

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:01:08