Siv*_*han 5 javascript node.js express
假设我有一个对象数组:
var students = [{name: 'Nick',achievements: 158,points: 1473}, {name: 'Nick',achievements: '175',points: '16375'},
{name: 'Ramon',achievements: '55',points: '2025'}];
Run Code Online (Sandbox Code Playgroud)
我只想从数组中的名称 Nick 中提取点。
就像 if (name=='Nick),O/P 应该是 [1473,16375]
我试过:
var arrayPoints = students.map(function (el) {
if(el.name=='Nick'){
return el.points
}
});
Run Code Online (Sandbox Code Playgroud)
但它给了我 o/p:
console.log(arrayPoints)
[1473,16375,undefined] o/p
Run Code Online (Sandbox Code Playgroud)
看看这些方法:
Array#map为每个元素返回一个(新)值。
Array#filter如果回调的返回值为true ,则准确返回该元素
您可以采取两个步骤,一个用于过滤项目,另一个用于从中获取值。
const
students = [{ name: 'Nick', achievements: 158, points: 1473 }, { name: 'Nick', achievements: '175', points: '16375' }, { name: 'Ramon', achievements: '55', points: '2025' }],
arrayPoints = students
.filter(student => student.name === 'Nick')
.map(student => student.points);
console.log(arrayPoints);Run Code Online (Sandbox Code Playgroud)
如果Array#flatMap实现了,您可以采用单个循环和过滤器并返回一个值。
空数组没有项目,并且该数组是中性值,不会出现在结果数组中。
const
students = [{ name: 'Nick', achievements: 158, points: 1473 }, { name: 'Nick', achievements: '175', points: '16375' }, { name: 'Ramon', achievements: '55', points: '2025' }],
arrayPoints = students
.flatMap(student => student.name === 'Nick'
? student.points
: []
);
console.log(arrayPoints);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |