js用filter提出字段的值
时间: 2023-07-24 11:14:12 浏览: 32
如果你想要提取数组中某个字段的值,可以使用 `map` 方法配合箭头函数来实现。以下是一个示例:
```javascript
const originalArray = [
{ id: 1, name: 'John', age: 25 },
{ id: 2, name: 'Jane', age: 30 },
{ id: 3, name: 'Bob', age: 35 }
];
const extractedValues = originalArray.map(obj => obj.name);
console.log(extractedValues);
```
在上面的示例中,`map` 方法被用来创建一个新的数组 `extractedValues`,其中每个元素都是原始数组中 `name` 字段的值。通过箭头函数,我们返回了 `obj.name`,即每个对象的 `name` 字段的值。最后,打印 `extractedValues` 将输出以下结果:
```javascript
['John', 'Jane', 'Bob']
```
这样就成功提取了原始数组中 `name` 字段的值,并将其存储在新的数组中。
相关问题
stream根据一个字段的两个值去filter
您好,根据一个字段的两个值进行 filter 可以使用 stream 中的 filter() 方法和 lambda 表达式来实现。具体可以按照以下步骤进行:
1. 使用 stream() 方法将集合转换为流。
2. 使用 filter() 方法进行筛选。
3. 在 filter() 方法中使用 lambda 表达式,指定需要筛选的条件。
例如,假设有一个 Student 类,包含 name 和 grade 两个字段,现在需要根据 grade 字段的值为 A 或 B 进行筛选,可以按照以下方式实现:
```
List<Student> students = ... ; // 从数据库或其他数据源获取 Student 集合
List<Student> filteredStudents = students.stream()
.filter(s -> s.getGrade().equals("A") || s.getGrade().equals("B"))
.collect(Collectors.toList());
```
上述代码中,使用了 stream() 方法将 students 集合转换为流,然后在 filter() 方法中使用 lambda 表达式,对 grade 字段进行了筛选,最后使用 collect() 方法将筛选后的结果转换为 List 集合。
注意,在 lambda 表达式中使用 || 运算符表示或,可以将多个条件连接起来进行筛选。
js 查询数组对象中不同字段的相同值
你可以使用 JavaScript 中的 `filter()` 函数和 `map()` 函数来实现这个功能。假设你有一个数组对象 `data`,其中每个对象都有两个字段 `name` 和 `age`,你可以按照以下步骤查询相同的 `name` 值:
1. 使用 `map()` 函数将数组对象中的 `name` 字段提取出来,生成一个新的只包含 `name` 字段的数组。
```javascript
const names = data.map(item => item.name);
```
2. 使用 `filter()` 函数和 `indexOf()` 函数来查询在 `names` 数组中出现过多次的值,也就是相同的 `name` 值。
```javascript
const sameNames = names.filter((name, index) => names.indexOf(name) !== index);
```
这里的 `filter()` 函数和 `indexOf()` 函数结合使用,可以将数组中出现过多次的值筛选出来,并生成一个新的数组 `sameNames`。
最后,你可以在控制台输出 `sameNames`,查看查询结果。
完整代码示例:
```javascript
const data = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 22 },
{ name: 'Alice', age: 24 },
{ name: 'Charlie', age: 25 },
{ name: 'Bob', age: 26 },
];
const names = data.map(item => item.name);
const sameNames = names.filter((name, index) => names.indexOf(name) !== index);
console.log(sameNames); // Output: ['Alice', 'Bob']
```