当一个字符串被传递给一个带有返回语句的函数时,你如何在JavaScript中反转它,而不使用内置函数(.reverse(), . charat()等)?
当前回答
String.prototype.reverse_string=function() {return this.split("").reverse().join("");}
or
String.prototype.reverse_string = function() {
var s = "";
var i = this.length;
while (i>0) {
s += this.substring(i-1,i);
i--;
}
return s;
}
其他回答
// try this simple way
const reverseStr = (str) => {
let newStr = "";
for (let i = str.length - 1; i >= 0; i--) {
newStr += str[i];
}
return newStr;
}
console.log(reverseStr("ABCDEFGH")); //HGFEDCBA
添加的反向字符串没有循环,它是通过递归工作。
函数反向(y) { 如果(y)。Length ==1 || . Length == 0){ 返回y; } 返回y.split(”)[y。长度- 1]+反向(y。片(0,y.length-1)); } console.log(反向(“Hello”));
只要你处理的是简单的ASCII字符,并且你很乐意使用内置函数,这就可以工作:
function reverse(s){
return s.split("").reverse().join("");
}
如果您需要一个支持UTF-16或其他多字节字符的解决方案,请注意这个函数会给出无效的unicode字符串,或者看起来很滑稽的有效字符串。你可以考虑一下这个答案。
[…s]是Unicode感知的,一个小的编辑给出:-
function reverse(s){
return [...s].reverse().join("");
}
var reverseString = function(str){
let length = str.length - 1;
str = str.split('');
for(let i=0;i<= length;i++){
str[length + i + 1] = str[length - i];
}
return str.splice(length + 1).join('');
}
String.prototype.reverse_string=function() {return this.split("").reverse().join("");}
or
String.prototype.reverse_string = function() {
var s = "";
var i = this.length;
while (i>0) {
s += this.substring(i-1,i);
i--;
}
return s;
}
推荐文章
- Javascript数组搜索和删除字符串?
- 如何复制对象属性在另一个对象?
- 如何绕过Access-Control-Allow-Origin?
- 我如何使用Node.js Crypto创建HMAC-SHA1哈希?
- JavaScript获取滚动窗口的X/Y位置
- “文本”和新字符串(“文本”)之间的区别是什么?
- JavaScript中不带else的三元运算符
- 如何检查对象是否在JavaScript中有任何属性?
- iFrame src变化事件检测?
- Java中字符串的不可变性
- 为什么Oracle 9i将空字符串视为NULL?
- 我如何在网页上动画文本的绘图?
- 对“URL”执行“createObjectURL”失败:
- 如何在package.json中使用“main”参数?
- 为什么在Java 8中String.chars()是整数流?