如何在JavaScript中拆分数组内的字符串(从全名中获取名字)

如何在JavaScript中拆分数组内的字符串(从全名中获取名字),javascript,arrays,string,foreach,split,Javascript,Arrays,String,Foreach,Split,我的任务是打印符合特定类别的数据集中所有个人的名字;但是,数据集是以字符串形式提供全名的对象数组,例如: var dataSet = [ { "name": "John Doe", "age": 60, "math": 97, "english": 63, "yearsOfEducation": 4 }, { "name": "Jane Doe", "age"

我的任务是打印符合特定类别的数据集中所有个人的名字;但是,数据集是以字符串形式提供全名的对象数组,例如:

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", "John", "Harry", "Hermione"]
我怀疑答案在于使用.forEach和.Split(),但还无法破解它…

您可以使用并解决此问题。基本上,您需要将每个
fullname
映射到
first name
,因此在每个
fullname
上使用
split
by
space
字符,我们可以得到一个名称数组,该数组的第一个元素将是
first name

const input=[“简·多伊”、“约翰·多伊”、“哈利·波特”、“赫敏·格兰杰”];
让res=input.map(name=>
{
[first,…rest]=name.split(“”);
先返回;
});
控制台日志(res)
.as控制台{背景色:黑色!重要;颜色:石灰;}
.作为控制台包装{max height:100%!important;top:0;}
您可以使用和来解决此问题。基本上,您需要将每个
fullname
映射到
first name
,因此在每个
fullname
上使用
split
by
space
字符,我们可以得到一个名称数组,该数组的第一个元素将是
first name

const input=[“简·多伊”、“约翰·多伊”、“哈利·波特”、“赫敏·格兰杰”];
让res=input.map(name=>
{
[first,…rest]=name.split(“”);
先返回;
});
控制台日志(res)
.as控制台{背景色:黑色!重要;颜色:石灰;}

.作为控制台包装{max height:100%!important;top:0;}
在映射函数中尝试var names=person.name.split(“”);并返回名称[0]

在map函数中尝试var names=person.name.split(“”);并返回名称[0]

如果允许您使用
forEach
属性,您可能需要:

dataSet.forEach( function( x ) { console.log( x.name.match( /\w+/)+"" ) } );

否则,您必须学习如何使用
while
循环。

如果允许您使用
forEach
属性,您可能需要:

dataSet.forEach( function( x ) { console.log( x.name.match( /\w+/)+"" ) } );

否则,您必须学习如何使用
while
循环。

在空格上拆分,返回第一个元素<代码>返回person.name.split(“”)[0]
当我第一次开始编程时,Jane大约23:D,感谢他们保持当前的年龄。空间上的split,返回第一个元素
return person.name.split(“”)[0]
当我第一次开始编程时,Jane大约23:D,感谢她保持了他们的年龄,lolOne liner:
input.map(x=>x.split(“”)[0])
One liner:
input.map(x=>x.split(“”)[0])
就是这样@charlietfl在上面的评论中说了同样的话:“在空间上拆分,返回第一个元素……返回person.name.Split(“”)[0]”这两个都很好。就是这样@charlietfl在上面的评论中说了同样的话:“在空间上拆分,返回第一个元素……返回person.name.Split(“”)[0]”这两种方法都很有效。