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

JavaScript中使用.find方法设置双重条件未生效,求问题排查

JavaScript Array.find 双重条件查询失效问题解决

你的代码问题出在传递给find的参数逻辑错误:
原代码里把两个独立的箭头函数用||连接,这会导致逻辑或直接返回第一个箭头函数(因为函数本身是真值),find只会用第一个函数去校验元素,第二个条件根本不会生效。这就是为什么discount@shipping这类不符合预期的元素会被错误返回。

正确写法

在同一个箭头函数内部,用逻辑或同时判断两个条件:

let calculoDesconto = item.PriceTags.find(n => n.Name === "DISCOUNT@MARKETPLACE" || n.Name === "discount@price");

可选:大小写不敏感匹配

如果需要忽略Name的大小写差异,可统一转换为小写后判断:

let calculoDesconto = item.PriceTags.find(n => {
  const lowerCaseName = n.Name.toLowerCase();
  return lowerCaseName === "discount@marketplace" || lowerCaseName === "discount@price";
});

这样find会逐个检查每个元素的Name是否符合两个目标值之一,不符合条件的元素会被正确过滤,不会赋值给calculoDesconto。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:40:29