=0;i--){nS+=str[i];}"; 3. 재귀를 사용하여 구문 "function f(s){return s===''? '':f (s.substr(1))+s.charAt(0)}"."/> =0;i--){nS+=str[i];}"; 3. 재귀를 사용하여 구문 "function f(s){return s===''? '':f (s.substr(1))+s.charAt(0)}".">

>웹 프론트엔드 >프런트엔드 Q&A >es6에서 문자열을 뒤집는 방법

es6에서 문자열을 뒤집는 방법

青灯夜游
青灯夜游원래의
2022-10-31 19:02:141272검색

구현 방법: 1. "str.split('').reverse().join('');" 구문으로 분할, 역방향 및 조인 함수를 사용합니다. 2. 내림차순 for 루프를 사용하여 " for(i =String length-1;i>=0;i--){nS+=str[i];}"; 3. 재귀를 사용하고 구문 "function f(s){return s==='' ?'' :f(s.substr(1))+s.charAt(0)}".

es6에서 문자열을 뒤집는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.

문자열 반전은 기술 인터뷰에서 가장 자주 묻는 JavaScript 질문 중 하나입니다. 면접관은 문자열을 반전하기 위해 다른 인코딩을 사용하도록 요청할 수도 있고, 문자열을 반전하기 위해 내장된 방법을 사용하지 말라고 요청할 수도 있고, 심지어 문자열을 반전하기 위해 재귀를 사용하도록 요청할 수도 있습니다.

이 작업을 수행하는 방법은 아마도 수십 가지가 있을 것입니다. 내장된 reverse 메서드를 제외하고는 JavaScript의 문자열 개체에는 그러한 메서드가 없기 때문입니다.

다음은 제가 해결하는 데 사용한 가장 흥미로운 세 가지입니다. JavaScript 메소드에서 문자열을 뒤집는 문제.

제공된 문자열을 반전하려면

이 필요합니다.
문자열을 반전하려면 먼저 문자열을 배열로 변환해야 할 수도 있습니다.
결과는 문자열이어야 합니다.

reverseString("hello")
  • 은 "olleh"를 반환해야 합니다. reverseString("Howdy")
  • 은 "ydwoH"를 반환해야 합니다 reverseString("Greetings from Earth")
  • 해야한다 return "htraE morf sgniteerG"
  • 1. 내장 메서드를 사용하여 문자열을 반전합니다

이 솔루션에서는 String.prototype.split() 메서드, Array.prototype .reverse( ) 메서드 및 Array.prototype.join() 메서드입니다. split() 메서드는 지정된 구분 기호 문자열을 사용하여 String 개체를 하위 문자열 배열로 분할하고 지정된 분할 문자열을 사용하여 각 분할 위치를 결정합니다.

reverse() 메서드는 배열의 요소를 분할합니다. 위치가 바뀌고 배열이 반환됩니다. 배열의 첫 번째 요소가 마지막 요소가 되고, 배열의 마지막 요소가 첫 번째 요소가 됩니다. 이 메소드는 원래 배열을 변경합니다. Join() 메소드는 배열(또는 배열과 유사한 객체)의 모든 요소를 ​​문자열로 결합하고 이 문자열을 반환합니다. 배열에 항목이 하나만 있는 경우 구분 기호를 사용하지 않고 항목이 반환됩니다

    function reverseString(str) {
        return str;
    }
    reverseString('hello');
  • 세 가지 메서드가 결합되어 체인 호출을 형성합니다.
  • function reverseString(str) {
        // Step 1. 使用 split()方法返回一个新数组
        var splitString = str.split(''); // var splitString = "hello".split("");
        // ["h", "e", "l", "l", "o"]
    
        // Step 2.使用 reverse()方法 翻转数组
        var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();
        // ["o", "l", "l", "e", "h"]
    
        // Step 3.使用 join()方法 组合所有的数组元素,从而变成一个新字符串
        var joinArray = reverseArray.join(''); // var joinArray = ["o", "l", "l", "e", "h"].join("");
        // "olleh"
    
        //Step 4. 返回翻转后的字符串
        return joinArray; // "olleh"
    }
    
    reverseString('hello');
2 내림차순 for 루프를 사용하여 문자열을 뒤집습니다.

function reverseString(str) {
    return str.split('').reverse().join('');
}
reverseString('hello');

댓글 제거:

function reverseString(str) {
    // Step 1. 创建一个空字符串,用来存储后面新创建的字符串
    var newString = '';

    // Step 2.创建for循环
    /* 循环的起点是(str.length-1),它对应于
        字符串的最后一个字符“o”
        只要i大于或等于0,循环就会继续
        每次迭代后递减i */
    for (var i = str.length - 1; i >= 0; i--) {
        newString += str[i]; // or newString = newString + str[i];
    }
    /* "hello"的length等于 5
        每次循环的公式: i = str.length - 1 and newString = newString + str[i]
        第一次循环:   i = 5 - 1 = 4,         newString = "" + "o" = "o"
        第二次循环:   i = 4 - 1 = 3,         newString = "o" + "l" = "ol"
        第三次循环:   i = 3 - 1 = 2,         newString = "ol" + "l" = "oll"
        第四次循环:   i = 2 - 1 = 1,         newString = "oll" + "e" = "olle"
        第五次循环:   i = 1 - 1 = 0,         newString = "olle" + "h" = "olleh"
    结束for循环*/

    // Step 3. 返回已翻转的字符串
    return newString; // "olleh"
}

reverseString('hello');
3. 재귀를 사용하여 문자열 역방향

이 솔루션에서는 String.prototype.substr() 메서드와 String.prototype.charAt() 메서드를 사용합니다.

substr() 메소드는 지정된 위치에서 시작하여 지정된 문자 수로 끝나는 문자열의 문자를 반환합니다.번역자 참고 사항:

String.prototype.substr(…)은 엄격하게 사용되지 않지만( "웹 표준에서 제거됨"과 마찬가지로) 레거시 기능으로 간주되므로 가능하면 피해야 합니다. 이는 핵심 JavaScript 언어의 일부가 아니며 향후 제거될 수 있습니다. 가능하다면 대신 substring()을 사용하세요.
  • function reverseString(str) {
        var newString = '';
        for (var i = str.length - 1; i >= 0; i--) {
            newString += str[i];
        }
        return newString;
    }
    reverseString('hello');
charAt() 메서드는 문자열에서 지정된 문자를 반환합니다. 재귀의 깊이는 문자열의 길이와 같습니다. 문자열이 매우 길고 스택 크기가 주요 문제인 경우 코드가 매우 느리게 실행됩니다. 따라서 이 솔루션은 최고의 솔루션이 아닙니다

'hello'.substr(1); // "ello"

댓글 삭제:

'hello'.charAt(0); // "h"
    삼항 표현 사용:
  • function reverseString(str) {
      if (str === "") // 如果传入空字符串,则直接返回它
        return "";
      else
        return reverseString(str.substr(1)) + str.charAt(0);
    /*
    递归方法的第一部分
    你需要记住不会只有一次回调,会存在多次嵌套回调
    每次回调的公式: str === "?"                         reverseString(str.subst(1))     + str.charAt(0)
    1st call – reverseString("Hello")   will return   reverseString("ello")           + "h"
    2nd call – reverseString("ello")    will return   reverseString("llo")            + "e"
    3rd call – reverseString("llo")     will return   reverseString("lo")             + "l"
    4th call – reverseString("lo")      will return   reverseString("o")              + "l"
    5th call – reverseString("o")       will return   reverseString("")               + "o"
    递归方法的第二部分
    该方法达一旦到if条件,嵌套最深的调用会立即返回
    */

JavaScript 문자열 반전

은 전화 기술 심사에 사용되는 작고 간단한 알고리즘입니다. 검색 또는 기술 인터뷰. 이 문제는 가장 간단한 방법으로 해결하거나 재귀적이거나 더 복잡한 솔루션으로 해결할 수 있습니다.

【관련 추천: javascript 비디오 튜토리얼

,

프로그래밍 비디오

위 내용은 es6에서 문자열을 뒤집는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.