js 根据属性值判断对象数组中的对象值相同的数组元素个数
时间: 2023-05-22 08:05:04 浏览: 263
可以使用 Array.prototype.filter() 和 Array.prototype.some() 方法来判断对象数组中的对象值相同的元素个数。代码示例如下:
```js
const arr = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 25 },
{ name: 'Alice', age: 20 },
{ name: 'Charlie', age: 30 },
{ name: 'David', age: 25 },
{ name: 'Bob', age: 25 },
]
function countDuplicates(arr, prop) {
return arr.filter((obj, index) => {
return arr.slice(index + 1).some((obj2) => {
return obj[prop] === obj2[prop]
})
}).length
}
console.log(countDuplicates(arr, 'name')) // output: 3
console.log(countDuplicates(arr, 'age')) // output: 4
```
上述代码中,使用 countDuplicates 函数来计算对象数组 arr 中,根据 prop 属性值判断相同元素的个数。该函数使用 filter() 和 some() 方法进行计算,其中 filter() 方法用于过滤掉不符合条件的元素,而 some() 方法则用于验证是否存在符合条件的元素。
阅读全文