我想先说。非常初学者。善待。然而。我正在尝试反转字符串。将字符串作为参数放入函数中并反转其顺序。例如'hello'应该返回'olleh'等。
我已经完成了:
function revString(stringArg) {
return stringArg.split("").reverse().join(");
}
但是。通过这样做:
function revString (stringArg) {
stringArg.split("");
stringArg.reverse();
stringArg.join("");
return stringArg;
}
第二个函数的结果输出是 reverse() 不是函数。谁能告诉我这里有什么区别?
最佳答案
发生这种情况是因为 split()
不会就地拆分字符串,而是将拆分后的字符串作为新值返回。在你的第二个函数中,你做 stringArg.split()
,但由于该操作没有发生,stringArg
永远不会突变。它始终保留完全相同的值和类型,这会导致您看到的错误。
第一个函数起作用的原因是函数调用应用于前一个调用的返回值。换句话说:
-
split()
被称为stringArg
-
reverse()
在split()
的返回值 上调用,这是一个数组,因此可以直接反转 -
join()
在reverse()
的返回值 上调用
但在第二个函数中,您在完全相同的变量 stringArg
上调用它们, 始终保持不变。为了使您的功能正常工作,您需要像这样修改它:
function revString (stringArg) {
a = stringArg.split(""); // Array
b = a.reverse(); // Reversed array
c = b.join(""); // String
return c;
}
然而,虽然这可能更容易理解,但不必要地冗长。我建议坚持使用原始功能。
关于javascript - 使用: string. split ("").reverse().join(")有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45401570/