筛选出对象中某个属性是否包含某个字段
时间: 2023-09-02 07:13:14 浏览: 33
假设你有一个对象数组,每个对象都有一个属性 `name`,你想筛选出所有 `name` 属性中包含特定字符串的对象,可以使用 `filter()` 方法结合 `includes()` 方法来实现。
例如,假设你的对象数组如下:
```javascript
const arr = [
{ name: 'apple' },
{ name: 'banana' },
{ name: 'orange' },
{ name: 'pear' },
{ name: 'watermelon' }
];
```
如果你想筛选出所有 `name` 属性中包含字符串 `'e'` 的对象,可以这样写:
```javascript
const filteredArr = arr.filter(obj => obj.name.includes('e'));
console.log(filteredArr); // [{name: 'apple'}, {name: 'orange'}, {name: 'pear'}, {name: 'watermelon'}]
```
这样就可以得到一个新的数组 `filteredArr`,其中包含了所有 `name` 属性中包含字符串 `'e'` 的对象。注意,`includes()` 方法是 ES6 中的新方法,如果需要兼容旧版本的浏览器,可以使用其他方法来实现。
相关问题
js筛选出数组对象中某个字段相同的
要筛选出数组对象中某个字段相同的,首先需要遍历整个数组,查找该字段的值。可以使用for循环或forEach方法来遍历数组,然后通过条件语句筛选出符合要求的对象。
例如,假设要筛选出一个学生数组中同一年级的学生,可以使用以下代码:
```javascript
let students = [
{ name: "张三", grade: "三年级" },
{ name: "李四", grade: "四年级" },
{ name: "王五", grade: "三年级" },
{ name: "赵六", grade: "三年级" }
];
let grade = "三年级";
let result = [];
students.forEach(function(student) {
if (student.grade === grade) {
result.push(student);
}
});
console.log(result);
```
这段代码首先定义了一个包含学生对象的数组。然后定义了一个变量grade来表示要筛选的年级。接着使用forEach方法遍历数组,判断每个学生对象中的grade属性是否等于grade变量,如果相等就将该对象添加到result数组中。最后打印result数组可以看到符合要求的学生对象。
判断某个数组中的对象的某个属性是否含有某个字段,并返回一个新的数组
假设你有一个对象数组,每个对象都有一个属性 `name`,你想筛选出所有 `name` 属性中包含特定字符串的对象,并将这些对象的 `name` 属性值组成一个新的数组,可以使用 `filter()` 方法结合 `map()` 方法来实现。
例如,假设你的对象数组如下:
```javascript
const arr = [
{ name: 'apple' },
{ name: 'banana' },
{ name: 'orange' },
{ name: 'pear' },
{ name: 'watermelon' }
];
```
如果你想筛选出所有 `name` 属性中包含字符串 `'e'` 的对象,并将这些对象的 `name` 属性值组成一个新的数组,可以这样写:
```javascript
const filteredNames = arr.filter(obj => obj.name.includes('e')).map(obj => obj.name);
console.log(filteredNames); // ['apple', 'orange', 'pear', 'watermelon']
```
这样就可以得到一个新的数组 `filteredNames`,其中包含了所有 `name` 属性中包含字符串 `'e'` 的对象的 `name` 属性值。如果没有符合条件的对象,`filteredNames` 将会是一个空数组。