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

如何根据另一个对象的键值过滤数据对象?附代码示例

按选中选项过滤数据对象

可以通过遍历数据对象的键,结合Array.filter()和Array.includes()实现过滤逻辑,只保留selectedOptions中指定key的项:

const data = {
  names: [
    { key: 1, name: 'Marek' },
    { key: 2, name: 'Marek 2' },
    { key: 3, name: 'Marek 3' },
    { key: 4, name: 'Marek 4' },
  ],
  ages: [
    { key: 1, age: 14 },
    { key: 2, age: 11 },
    { key: 3, age: 17 },
    { key: 4, age: 22 },
    { key: 5, age: 31 },
  ],
};

const selectedOptions = {
  names: [1, 2],
  ages: [4],
};

const showResults = () => {
  const filteredData = {};
  // 遍历数据的每个分类键
  Object.keys(data).forEach(key => {
    // 获取对应分类的选中key列表,默认空数组避免报错
    const selectedKeys = selectedOptions[key] || [];
    // 过滤出key在选中列表中的项
    filteredData[key] = data[key].filter(item => selectedKeys.includes(item.key));
  });
  return filteredData;
};

// 执行函数得到过滤结果
const filteredData = showResults();

执行后得到的filteredData结果如下:

const filteredData = {
  names: [
    { key: 1, name: 'Marek' },
    { key: 2, name: 'Marek 2' },
  ],
  ages: [
    { key: 4, age: 22 },
  ],
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:51:04