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

JavaScript中如何从对象数组中提取name属性值重复的对象

筛选数组中name属性重复的对象

可以通过统计属性出现次数再过滤数组的方式实现需求,以下是完整的实现代码:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<script>
const value = [
    {
        "id": 2,
        "name": "Pumpkin"
    },
    {
        "id": 1,
        "name": "Ladies Finger"
    },
    {
        "id": 4,
        "name": "Spinach"
    },
    {
        "id": 5,
        "name": "Spinach"
    }
];

// 统计每个name的出现次数
const nameCount = value.reduce((countMap, item) => {
    countMap[item.name] = (countMap[item.name] || 0) + 1;
    return countMap;
}, {});

// 过滤出name出现次数大于1的对象
const duplicatedItems = value.filter(item => nameCount[item.name] > 1);

console.log("get same value property", duplicatedItems);
/* 输出结果:
[
    { "id": 4, "name": "Spinach" },
    { "id": 5, "name": "Spinach" }
]
*/
</script>
</body>
</html>

代码说明

  • 统计次数:用Array.reduce()遍历数组,生成一个以name为键、出现次数为值的对象,记录每个name的出现频次。
  • 过滤数组:用Array.filter()遍历原数组,只保留计数对象中出现次数大于1的元素,最终得到所有name重复的对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:22:48