Javascript 使用Array.filter后如何获取多个值?
我已经成功地过滤了我的数组,因此只显示包含字符串“eastern”的对象Javascript 使用Array.filter后如何获取多个值?,javascript,arrays,filter,Javascript,Arrays,Filter,我已经成功地过滤了我的数组,因此只显示包含字符串“eastern”的对象 // Empty array + object that is pushed onto array following Btn click var dataSet = []; dataObj = {Course: courseSelect.value, Score: scoreText.value, Pars: parsText.value, Birdies: birdiesText.value}; dataSet.
// Empty array + object that is pushed onto array following Btn click
var dataSet = [];
dataObj = {Course: courseSelect.value, Score: scoreText.value, Pars: parsText.value, Birdies: birdiesText.value};
dataSet.push(dataObj);
// Filter
findVal = dataSet.filter(findVal => findVal.Course === 'eastern');
现在唯一的问题是,如果我想通过使用console.log(findVal.Score)
将Score值从该对象中分离出来,它将返回undefined。我希望它能从过滤数组中的每个对象返回每个分数值,但事实并非如此
如何克服这个问题?既然
findVal
它是一个数组,您应该结合使用map
方法和解构方法,以便从数组中获取每个项的分数
属性
findVal = dataSet
.filter(findVal => findVal.Course === 'eastern')
.map(({Score}) => Score);
我看不到任何阵列。
dataSet
看起来怎么样?finalVal不是数组吗?您需要访问您发布的索引dataObj
,但是.filter()
代码涉及一种称为数据集的内容。请注意,.filter()
返回一个数组,因此当然在该数组上没有直接的.Score
属性。您有//array
上面的内容显然是一个对象对不起,大家,我的帖子出错了。我已经对它进行了相应的编辑。我认为在这种情况下,解构是没有用的,相反,它会使代码更脏.map(x=>x.Score)代码>更干净。