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

如何使用Lodash的_.filter()正确筛选state为USA或Canada且id为1的cart数组

错误原因

你原先的写法存在两个问题:

  • JS 语法错误:{"Canada", "USA"} 不符合对象键值对的定义规则,代码运行时会直接抛出语法异常
  • Lodash 语法规则不匹配:_.filter 传入对象作为匹配条件时,只会做全等于比对,无法自动判断字段值是否属于某个指定集合

正确实现写法

写法1:基础回调逻辑(可读性最高)

var oddNo = _.filter(cart, function(item) {
  return (item.state === 'Canada' || item.state === 'USA') && item.id === '1';
});
console.log(oddNo);

如果是支持ES6+的环境,可以简化为箭头函数写法:

const oddNo = _.filter(cart, item => (['Canada', 'USA'].includes(item.state)) && item.id === '1');

写法2:借助Lodash内置方法简化多值匹配

如果可选的state值很多,可以用_.includes简化判断逻辑:

const allowStates = ['Canada', 'USA'];
const oddNo = _.filter(cart, item => _.includes(allowStates, item.state) && item.id === '1');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:09:01