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

如何筛选checked为true的对象并通过map()生成指定结构的新数组?

解决方案:过滤并转换节点数组

要实现只提取checked为true的节点,并转换成{name, id, checked}的结构,你需要先筛选符合条件的节点,再转换结构——直接用map()会遍历所有节点,无法过滤,所以可以结合filter()和map()来实现,或者用reduce()一步完成。

方法一:filter + map(直观易读)

先通过filter()筛选出checked为true的节点,再用map()转换对象结构:

let checkedNodes = nodes
  .filter(node => node.checked)
  .map(node => ({
    name: node.nodeName,
    id: node.nodeId,
    checked: node.checked
  }));

方法二:reduce(一步完成)

用reduce()同时完成筛选和转换逻辑,减少一次数组遍历:

let checkedNodes = nodes.reduce((result, node) => {
  if (node.checked) {
    result.push({
      name: node.nodeName,
      id: node.nodeId,
      checked: node.checked
    });
  }
  return result;
}, []);

验证结果

两种方法都会得到你期望的输出:

[
    {
        "name": "node2",
        "id": 2,
        "checked": true
    },
    {
        "name": "node4",
        "id": 4,
        "checked": true
    },
    {
        "name": "node6",
        "id": 6,
        "checked": true
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:10:28