js在对象数组中选出符合条件的元素
时间: 2023-11-19 11:06:50 浏览: 33
可以使用数组的 `filter` 方法结合回调函数来选出符合条件的元素。例如,假设有一个对象数组 `students`,我们要选出成绩大于等于 90 分的学生,可以这样写:
```javascript
const students = [
{ name: '张三', score: 85 },
{ name: '李四', score: 92 },
{ name: '王五', score: 88 },
{ name: '赵六', score: 95 },
];
const excellentStudents = students.filter((student) => {
return student.score >= 90;
});
console.log(excellentStudents);
// 输出: [{ name: '李四', score: 92 }, { name: '赵六', score: 95 }]
```
上面的代码中,`filter` 方法会遍历 `students` 数组中的每个元素,对于每个元素都会调用回调函数,如果回调函数返回值为 true,则表示该元素符合条件,会被保留到新的数组 `excellentStudents` 中。
相关问题
js在对象数组中根据id选出符合条件的多个元素
可以使用数组的 `filter` 方法结合回调函数来选出符合条件的多个元素。假设对象数组中的每个元素都有一个 `id` 属性,我们要选出 `id` 属性为指定值的多个元素,可以这样写:
```javascript
const students = [
{ id: 1, name: '张三', score: 85 },
{ id: 2, name: '李四', score: 92 },
{ id: 3, name: '王五', score: 88 },
{ id: 4, name: '赵六', score: 95 },
{ id: 2, name: '钱七', score: 90 },
];
const id = 2;
const matchedStudents = students.filter((student) => {
return student.id === id;
});
console.log(matchedStudents);
// 输出: [{ id: 2, name: '李四', score: 92 }, { id: 2, name: '钱七', score: 90 }]
```
上面的代码中,回调函数判断每个元素的 `id` 属性是否等于指定的 `id`,如果相等则返回 true,表示该元素符合条件,会被保留到新的数组 `matchedStudents` 中。
typescript 数组元素值符合条件
可以使用数组的filter方法来筛选出符合条件的元素,例如:
```typescript
const arr: number[] = [1, 2, 3, 4, 5];
// 选出所有大于等于3的元素
const filteredArr = arr.filter((num) => num >= 3);
console.log(filteredArr); // 输出 [3, 4, 5]
```
也可以使用数组的reduce方法来判断数组中是否有元素符合条件,例如:
```typescript
const arr: number[] = [1, 2, 3, 4, 5];
// 判断是否有元素大于等于3
const hasMatched = arr.reduce((acc, cur) => acc || cur >= 3, false);
console.log(hasMatched); // 输出 true
```
这里的reduce方法会对数组中的每个元素依次执行回调函数,最终返回一个布尔值表示是否有元素符合条件。初始值为false,如果数组中有一个元素大于等于3,就会将acc变为true,后续的元素就不再执行回调函数了。