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

如何使用Lodash筛选对象数组中status值为true的对象

问题根源
  • 数组方法选择错误:map方法会遍历数组所有元素,将每个元素的返回值组成新数组,长度和原数组完全一致。你当前代码返回的是每个元素的status判断结果,所以最终得到布尔值数组。
  • 判断逻辑和示例不匹配:你给出的示例数组中status为布尔类型,原有代码判断条件为item.status === "Delievered",和示例的筛选要求不符,同时该字符串存在拼写错误,正确的「已交付」英文拼写为Delivered。
修复方案

要筛选出符合条件的对象,应使用数组的filter方法,该方法仅会将判断返回true对应的原元素保留到新数组中。

适配示例需求的代码(筛选status为true的对象)

const inputArray = [
  {id: 1, status: true},
  {id: 2, status: true},
  {id: 3, status: false},
  {id: 4, status: true},
  {id: 5, status: true},
  {id: 6, status: false}
];

const getValidStatusItems = (array) => {
  const result = array.filter(function (item) {
    return item.status === true;
  });
  console.log("@@ result", result);
  return result;
};

// 调用后得到的result就是所有status为true的对象集合
getValidStatusItems(inputArray);

适配实际交付状态判断的代码

如果你的业务场景中status存储的是状态字符串,调整判断条件即可:

const countDeliveredDeliveries = (array) => {
  const result = array.filter(function (item) {
    return item.status === "Delivered";
  });
  console.log("@@ result", result);
  return result;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:24:05