在此代码中,console.log(name [i])的结果是分割字符串的第一个字符(即c,s,t),但我想像chris这样分开名字。并在MDN上提供了预期的结果,但在js的控制台上却没有。
var char=['chris:2255655','sarrah:5456454','taur:5655226'];
var name=new Array();
for(var i=0;i<char.length;++i){
name=char[i].split(':');
console.log(name[i]);
}
答案 0 :(得分:0)
您的代码应类似于
var char=['chris:2255655','sarrah:5456454','taur:5655226'];
for(var i=0;i<char.length;++i){
var w = char[i].split(":");
console.log(w[0]);
}
请检查我的代码段。看来您的拆分不是结果数组,而是字符串。所以你只得到第一个符号
答案 1 :(得分:0)
您可以简单地做到:
var char=['chris:2255655','sarrah:5456454','taur:5655226']
// As array
console.log(char.map(x => x.split(':')[0]))
// As a string
console.log(...char.map(x => x.split(':')[0]))
由于split给我们提供了一个数组,因此我们使用包含名称的0索引。由于Map返回一个数组,因此您可以按原样保留,也可以...
将其保留destructure以获取其内容。
答案 2 :(得分:0)
您可以这样做。
const char=['chris:2255655','sarrah:5456454','taur:5655226'];
const name= [];
for(let i=0;i<char.length;i++){
let val =char[i].split(':');
name.push(val[0]);
console.log(name[i]);
}
答案 3 :(得分:0)
由于您知道选择的位置,因此可以直接将其分配给变量:
var char = ['chris:2255655', 'sarrah:5456454', 'taur:5655226']
var names = char.map(item => {
var [name] = item.split(':'); // <- select only first index
// var [name, id] = item.split(':'); // <- select first and second index
// var [name, ...rest] = item.split(':'); // <- select first and rest of the elements
// var [name,] = item.split(':'); // <- select first and skip next element index using ","
return name;
})
console.log(names);