有没有办法使用For循环执行此代码,只是好奇?

时间:2017-12-06 17:54:35

标签: javascript

此代码删除名称之间的空格并插入逗号。我很想知道是否有办法使用For循环替换“Split”来执行相同的代码。我记得做过类似但不足以实际做到的事情。

function cutName (name) {
    return name.split(' ');
}

alert(cutName("Amjad Ali"));

2 个答案:

答案 0 :(得分:0)

同意你所提问的评论似乎有点奇怪,但是你走了:

function cutName(name) {
  let result = "";
  for (let i = 0; i < name.length; i++) {
    if (name[i] === " ") result += ",";
    else result += name[i];
  }
  return result;
}

alert(cutName("Amjad Ali"));

这不会像split()那样返回数组,但是字符串化的结果是相同的(看起来就是你所追求的)。

如果您 想要一个数组,就像split()一样,请尝试这样做:

function cutName (name) {
    let result = [];
    let lastIndex = 0;
    for(let i=0; i<name.length; i++) {
    	if(name[i] === " ") {
      	result.push(name.substring(lastIndex, i));
        lastIndex = i+1;
      }
    }
    result.push(name.substring(lastIndex, name.length))
    return result;
}


console.log(cutName("Amjad Ali"));

答案 1 :(得分:0)

function cutName(name){
  var result = "";
  for(const char of name) result += char === " " ? "," : char;
  return result;
}

console.log(cutName("Jonas W"));

您可以使用for循环迭代每个字符。