js数组某一项某一字段出现的次数不用reduce
时间: 2023-08-10 12:03:40 浏览: 78
你可以使用普通的 for 循环来实现统计某一项某一字段出现的次数,示例代码如下:
```javascript
let arr = [
{ id: 1, name: '张三' },
{ id: 2, name: '李四' },
{ id: 3, name: '张三' },
{ id: 4, name: '王五' },
{ id: 5, name: '张三' }
];
let count = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i].name === '张三') {
count++;
}
}
console.log(count); // 输出 3
```
上面的代码中,我们使用了一个 for 循环,遍历数组中的每一个元素,如果元素的 name 属性等于 '张三',就让 count 加 1。最终输出 count 的值,即可得到 '张三' 出现的次数。
相关问题
js数组某一项某一个字段出现的次数
可以使用 JavaScript 的 reduce 方法来统计数组中某一项某一个字段出现的次数。
例如,假设有以下数组:
```javascript
const arr = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 3, name: 'apple' },
{ id: 4, name: 'apple' }
];
```
我们想要统计 `name` 字段为 `'apple'` 出现的次数,可以使用以下代码:
```javascript
const count = arr.reduce((acc, curr) => {
if (curr.name === 'apple') {
return acc + 1;
}
return acc;
}, 0);
console.log(count); // 输出 3
```
在上面的代码中,我们使用 reduce 方法对数组进行遍历,并在每次遍历时判断当前项的 `name` 字段是否为 `'apple'`,如果是,则累加器 `acc` 加 1,最后返回累加器的值作为结果。初始值为 0。
js判断一个数组,如果数组长度大于1,并且每一项里面的某一个字段值相等,那么只保留字段值相等最后一个
在JavaScript中,你可以通过遍历数组并利用`reduce()`函数来实现这个需求。假设你想比较的是数组中每一项的某个字段`field`,可以按照以下步骤操作:
```javascript
function filterArray(arr, field) {
if (arr.length <= 1) return arr; // 如果长度小于等于1,直接返回
const lastEqualItem = arr.reduce((prev, curr) => {
if (!prev || curr[field] === prev[field]) { // 当前元素的field值与上一个相等或上一个不存在
return curr;
}
return prev;
}, arr[0]); // 从第一个元素开始比对,初始值设为第一个元素
return [lastEqualItem]; // 返回只有一个元素的数组,即满足条件的最后一个元素
}
// 使用示例
const array = [{name: 'a', age: 20}, {name: 'b', age: 20}, {name: 'c', age: 30}];
const result = filterArray(array, 'age');
console.log(result); // 输出:[{name: 'b', age: 20}]
阅读全文