gpt4 book ai didi

javascript - 如何组合(遍历)2个字符串,混合每个字符串中不同长度的字母?

转载 作者:行者123 更新时间:2023-11-30 11:56:27 24 4
gpt4 key购买 nike

编辑:输出应该是 t1h2i3s4oneislong

我正在尝试编写一个返回一个新单词的函数,将传递给该函数的两个单词中的字母组合起来。如果 word1 是 hello 并且 word2 是 12345 它应该返回 h1e2l3l4o5 - 混合两个单词的所有字母。问题是,如果一个词比另一个词长,我会得到 undefinedundefinedundefined 等。

我想我可以只问是 word1.length

有人可以解释为什么这不起作用(我正在学习)以及我如何让它起作用吗?谢谢!!

function creatingWord(one,two){
var string="";
if (one.length==1 &&two.length==1){
string=one+two;
}
else if (one.length==two.length){
for (var i=0; i<one.length;i++){
string+=one[i];
string+=two[i];
}
}
else if (one.length>two.length){
for (var j=0; j<one.length;j++){
string+=one[j];
string+=two[j];
}
}
return string;
}


var result = creatingWord('thisoneislong', '1234');
result;

最佳答案

我认为这里有两种可能的答案,具体取决于您希望输出的内容。

此代码为您提供输出“t1h2i3s4oneislong”(一旦另一个词用完,继续使用较长的词):

function creatingWord(one, two){
var output = "";
for (var i = 0; i < Math.max(one.length, two.length); i++) {
if (one.length > i) {
output += one[i];
}
if (two.length > i) {
output += two[i];
}
}
return output;
}

这是一个给出输出“t1h2i3s4”( chop 为较小的词)的版本:

function creatingWord(one, two){
var output = "";
for (var i = 0; i < Math.min(one.length, two.length); i++) {
output += one[i] + two[i];
}
return output;
}

编辑:

在回答下面的评论时,这是一个采用可变数量参数的版本:

// takes a variable number of words
function creatingWord() {
var output = "";
var words = Array.prototype.slice.call(arguments);

var maxLength = 0;
for (var i = 0; i < words.length; i++) {
var word = words[i];
if (word.length > maxLength) {
maxLength = word.length;
}
}

for (var i = 0; i < maxLength; i++) {
for (var j = 0; j < words.length; j++) {
var word = words[j];
if (word.length > i) {
output += word[i];
}
}
}

return output;
}

关于javascript - 如何组合(遍历)2个字符串,混合每个字符串中不同长度的字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37779891/

24 4 0