Javascript分割数组
我有一个JavaScript数组,其中包含员工的中文和英文姓名 例如:Javascript分割数组,javascript,arrays,Javascript,Arrays,我有一个JavaScript数组,其中包含员工的中文和英文姓名 例如: XXX MA Yo-Yo 其中,XXX表示中文名称:馬友友 我想使用第一个空格“作为指示符,将其分为两部分 for (i = 0; i < /* ... */) { w_temp = arr[i]; w_name = w_temp[1].split(' ', 1); /* ... */ } for(i=0;i
XXX MA Yo-Yo
其中,XXX
表示中文名称:馬友友代码>
我想使用第一个空格“
作为指示符,将其分为两部分
for (i = 0; i < /* ... */)
{
w_temp = arr[i];
w_name = w_temp[1].split(' ', 1);
/* ... */
}
for(i=0;i*…*/)
{
w_temp=arr[i];
w_name=w_temp[1]。拆分(“”,1);
/* ... */
}
w\u name[0]
成功返回馬友友代码>。但是w_name[1]
返回undefined
,它不能返回MA Yo
我怎样才能把它分成两部分呢?你有
split(' ', 1)
1表示最多返回一个零件。如果你需要的话,你应该把它改成两行。用如下内容替换你现有的w\u name=…
行:
w_name = w_temp[1].split(' ');
w_name = [w_name[0], w_name.slice(1).join(' ')];
先前的,1
表示一旦到达第一个空格就停止解析。这不是你想要的;您希望第一个空格之前的零件作为一个项目,后面的零件作为另一个项目。新代码解析所有元素。之后,它将其设置为一个数组,该数组由以下内容组成:
已存在的第一个元素,以及
第一个图元后的零件重新连接
试试这个
for (var i = 0; i < arr.length; i++) {
var w_temp = arr[i];
// assuming w_temp contains an array where the second item
// is the full name string
var parts = w_temp[1].match(/^(.+?) (.+)$/);
var cn_name = parts[1];
var en_name = parts[2];
}
for(变量i=0;i
因为您使用limit=1
调用split方法,所以w_name
只有1项
此外,您的输入字符串有2个空格,因此,如果使用split With limit参数,w_name
将包含3项(“XXX”、“CHAN”和“Tai Man”)
我想你应该用这个:
var idx = str.indexOf(' ');
if (idx != -1) {
var cn_name = str.substring(0, idx);
var en_name = str.substring(idx + 1);
}
我认为w_temp[1]
是一个错误。从这个问题来看,我认为w_temp
是字符串“XXX CHAN Tai Man”@Phil:问题指出w_name[0]
返回正确的值,因此w_temp[1]
必须是正确的。