我会给你两个字符串。我希望你一次将stringOne转换成stringTwo一个字母。
示例:
stringOne ='泡泡糖'; stringTwo ='turtle ham';
结果: 泡泡糖, 管状口香糖, 滚筒胶, 龟胶, 龟哼, 龟火腿
function mutateMyStrings(stringOne, stringTwo){
var result = stringOne + "\n";
var stringOneArr = [...stringOne];
var stringTwoArr = [...stringTwo];
for (var i = 0; i < stringOneArr.length; i++) {
if (stringOneArr[i] !== stringTwoArr[i]) {
console.log(stringOneArr);
stringOneArr[i] = stringTwoArr[i]
result += (stringOneArr.join('') + "\n")
}
}
return result;
}
console.log(mutateMyStrings('dog','cat'));
请阅读此内容,最重要的是。
if (stringOneArr[i] !== stringTwoArr[i]) {
stringOneArr[i] = stringTwoArr[i]
result += (stringOneArr.join('') + "\n")
}
我不明白为什么我们需要if(stringOneArr [i]!== stringTwoArr [i]) 声明。我没有它编写这个代码,并没有得到正确的答案
stringOneArr[i] = stringTwoArr[i]
result += (stringOneArr.join('') + "\n")
我收到此错误:
Expected: 'bubble gum\ntubble gum\nturble gum\nturtle gum\nturtle hum\nturtle ham\n',
instead got: 'bubble gum\ntubble gum\ntubble gum\nturble gum\nturtle gum\nturtle gum\nturtle gum\nturtle gum\nturtle hum\nturtle ham\nturtle ham\n'
有人可以告诉我为什么在我的for循环中我不能只分配stringOneArr [i] = stringTwoArr [i]。对我来说,如果我只是遍历字符串并将每个string1元素分配给string2元素,它应该正确地出来。
但是,如果我说如果string1元素不等于string2元素,那么唯一正确地做到并获得正确输出的方法。而且我将它分配给string1元素到string2元素。为什么我不理解为什么它不能解决这个条件。
答案 0 :(得分:1)
你没错,你可以只指定stringOneArr[i] = stringTwoArr[i]
。但看起来你正在运行它的测试平台期望你跳过匹配的字符。因此,有必要检查是否stringOneArr[i] !== stringTwoArr[i]
并跳过匹配的字符。这正是测试所需要的。