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

使用ES6根据属性值过滤对象数据的实现方案

ES6对象属性过滤实现方案

你可以通过Object.values()结合数组方法快速实现需求:

  • 如果只需要获取第一个符合条件的子对象,使用Array.find()
  • 如果需要获取所有符合条件的子对象,使用Array.filter()

基础实现(适配你给出的筛选场景)

const source = {
  A: { value1: 4, value2: 2, value3: 5 },
  B: { value1: 2, value2: 5, value3: 8 }
};

// 返回第一个匹配的子对象
const target = Object.values(source).find(item => item.value1 === 4 && item.value2 === 2);
// 输出结果:{ value1: 4, value2: 2, value3: 5 }

通用封装(支持动态传入任意筛选条件)

如果后续筛选条件会变化,可以封装为通用方法,不用修改判断逻辑:

function filterByCondition(sourceObj, condition) {
  return Object.values(sourceObj).filter(item => 
    Object.entries(condition).every(([key, expectVal]) => item[key] === expectVal)
  );
}

// 调用示例,支持任意多条件组合
const result = filterByCondition(source, { value1: 4, value2: 2 });
// 输出所有匹配的子对象数组:[ { value1: 4, value2: 2, value3: 5 } ]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:18:03