【发布时间】:2019-04-08 16:18:02
【问题描述】:
我的任务是打印数据集中适合特定类别的所有个人的名字;但是,数据集是一个对象数组,以字符串形式提供全名,例如:
var dataSet = [
{
"name": "John Doe",
"age": 60,
"math": 97,
"english": 63,
"yearsOfEducation": 4
},
{
"name": "Jane Doe",
"age": 55,
"math": 72,
"english": 96,
"yearsOfEducation": 10
}
]
我不能使用任何数组类型的内置函数,除了 filter()、map() 和 reduce()。
我的代码的最后一块(从对象数组“dataSet”中获取名称)如下所示:
var youngGoodMath = dataSet.filter(function(person){
return person.age < avgAge && person.math > avgMath;
});
var yGMname = youngGoodMath.map(function (person){
return person.name;
});
console.log(yGMname);
它产生一个字符串数组,看起来像:
["Jane Doe", "John Doe", "Harry Potter", "Hermione Granger"]
我需要想办法生产:
["Jane", "John", "Harry", "Hermione"]
我怀疑答案在于使用 .forEach 和 .Split(),但还没有能够破解它......
【问题讨论】:
-
空间分割,返回第一个元素...
return person.name.split(' ')[0] -
当我第一次开始编程时,Jane 大约 23 岁 :D 感谢您保持他们的年龄,哈哈
标签: javascript arrays string foreach split