根据对象的name属性移除数组中的非重复对象
移除数组中name属性仅出现一次的对象
要实现这个需求,我们可以分两步操作:先统计每个name属性的出现频次,再根据频次过滤数组,只保留出现多次的对象。
实现代码(JavaScript)
// 原始数组 const originalArray = [ { "name": "Storage Capacity", "value": "64GB" }, { "name": "Manufacturer Color", "value": "Black / Red / White / Green / Purpule" }, { "name": "Carrier", "value": "Unlocked" }, { "name": "Carrier", "value": "AT&T" }, { "name": "Brand", "value": "Apple" }, { "name": "MPN", "value": "NA" }, { "name": "Model", "value": "Iphone 11" }, { "name": "Color", "value": "Black" }, { "name": "Color", "value": "White" }, { "name": "Storage Capacity", "value": "128GB" }, ]; // 第一步:统计每个name的出现频次 const nameCount = originalArray.reduce((countObj, item) => { countObj[item.name] = (countObj[item.name] || 0) + 1; return countObj; }, {}); // 第二步:过滤数组,仅保留出现次数>1的对象 const filteredArray = originalArray.filter(item => nameCount[item.name] > 1); console.log(filteredArray);
输出结果
运行上述代码后,filteredArray将只包含name为Color、Storage Capacity、Carrier的对象,符合需求:
[ { "name": "Storage Capacity", "value": "64GB" }, { "name": "Carrier", "value": "Unlocked" }, { "name": "Carrier", "value": "AT&T" }, { "name": "Color", "value": "Black" }, { "name": "Color", "value": "White" }, { "name": "Storage Capacity", "value": "128GB" } ]
内容的提问来源于stack exchange,提问作者Gia Nebieridze
相关产品推荐
相关产品推荐

