javascript - 如何在javascript中交替合并两个字符串?

标签 javascript string merge

给定输入 str1 是 "abc"str2 是 "def"输出应该是 adbecf 给定 str1 = "ab"和 str2 = "def"输出应该是 adbef

我的输出是:

合并('abc','def') “adbecfNaN”

合并('ab','def') “adbeundefinedf”

我一直在尝试过滤 undefined 和 NAN,但它不起作用。

这是我的代码:

function merge (str1, str2) {

  var a = str1.split("").filter(Boolean);

  var b = str2.split("");

  var mergedString = '';


  for(var i = 0; i <= a.length && i <= b.length; i++) {

       mergedString +=  a[i] + b[i];

    }

    return mergedString;

}

最佳答案

你需要使用<而不是 <=在循环条件中,因为数组索引是从 0 开始的。这就是你得到 NaN 的原因。你可以这样做:

function merge (str1, str2) {

  var a = str1.split("").filter(Boolean);

  var b = str2.split("");

  var mergedString = '';


  for(var i = 0; i < a.length || i < b.length; i++) {  //loop condition checks if i is less than a.length or b.length
   if(i < a.length)  //if i is less than a.length add a[i] to string first.
     mergedString +=  a[i];
   if(i < b.length)  //if i is less than b.length add b[i] to string.
     mergedString +=  b[i];
  }
return mergedString;

}
console.log(merge('abc','def'));
console.log(merge('ab','def'));

关于javascript - 如何在javascript中交替合并两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067156/

相关文章:

java - 在 Java 中让一个 Integer 指向 3 个有序列表

python - 选择 Pandas 中的平均列(同时排除一列)

javascript - 输入悬停时添加自动对焦属性

javascript - 更改最大宽度小于 420px 的浏览器的点击事件 id

java - 如何在java中检查1是质数并且Hashmap的输出对于String类型是错误的

java - 将字符串分配给字符串数组

javascript - 异步加载网页

javascript - 为什么等待延迟在函数作用域结束时结束

javascript - 将字符串元素传递给数据键

java - Git merge 两个分支与移动的文件