如何从对象数组中获取指定元素?array.some使用问题解决
解决方法
首先明确:Array.some()的设计目的是判断数组中是否存在符合条件的元素,返回值是布尔值(true/false),并不是返回匹配的元素。你看到输出整个数组,应该是代码中误输出了原数组data,而非变量found。
要获取单个符合条件的元素,应该使用Array.find()方法,它会返回数组中第一个满足条件的元素;如果需要获取所有符合条件的元素,则用Array.filter()。
使用Array.find()获取单个匹配元素
data = [{ Surname: 'Santos', Firstname: 'Carlos' }, { Surname: 'Reyes', Firstname: 'Carla' }, { Surname: 'Michael', Firstname: 'Lebowski' } ]; // 找到第一个Surname为'Reyes'的元素 var found = data.find(function(item) { return item.Surname === 'Reyes' }) console.log(found);
执行后输出:
{Surname: 'Reyes', Firstname: 'Carla'}
补充:获取所有匹配元素用Array.filter()
如果数组中有多个符合条件的元素,想要全部获取,可以用filter:
var foundAll = data.filter(function(item) { return item.Surname === 'Reyes' }) console.log(foundAll);
输出是包含所有匹配元素的数组:
[{Surname: 'Reyes', Firstname: 'Carla'}]
内容的提问来源于stack exchange,提问作者jiam liam
相关产品推荐
相关产品推荐

