You need to enable JavaScript to run this app. JavaScript中如何按条件过滤数组获取符合要求的id组成的结果数组
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何按条件过滤数组获取符合要求的id组成的结果数组

实现方案

你当前使用的filter方法仅会保留原数组中符合条件的对象元素,不会修改元素本身的结构,因此返回的是对象数组。要得到仅由符合条件的projectId组成的字符串数组,可参考以下两种实现:

方法1:filter + map 链式调用(逻辑直观易读)

先过滤掉projectId为search的对象,再遍历提取每个对象的projectId属性:

const projects = [
 {projectId: "1111111", projectName: "A"},
 {projectId: "search", projectName: "B"},
 {projectId: "2222222", projectName: "C"},
 {projectId: "search", projectName: "D"},
 {projectId: "333333333", projectName: "E"}
];

const result = projects
  .filter(item => item.projectId && item.projectId !== 'search') // 保留原逻辑,可排除空值的projectId
  .map(item => item.projectId);

console.log(result);
// 输出:["1111111", "2222222", "333333333"]

方法2:reduce 单次遍历(性能更优,适合大数组场景)

一次遍历同时完成筛选和属性提取,避免对数组进行两次遍历:

const result = projects.reduce((accumulator, current) => {
  if (current.projectId && current.projectId !== 'search') {
    accumulator.push(current.projectId);
  }
  return accumulator;
}, []); // 初始值为空数组

两种方法的输出都符合你的预期。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 07:06:03