> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 재미있는 질문: 그 내용은 무엇입니까?

JavaScript 재미있는 질문: 그 내용은 무엇입니까?

黄舟
풀어 주다: 2017-02-13 16:02:44
원래의
1058명이 탐색했습니다.

문자열 배열이 2개 있는 것으로 알려져 있는데, 이를 a1, a2이라고 부르겠습니다.

현재 작업은 a2에 있는 요소의 하위 문자열a1에서 모든 요소를 ​​찾아 새 배열에 저장하는 것입니다.

이 새 배열을 사전순으로 정렬하고 반환합니다.

예:

a1 = ["arp", "live", "strong"]

a2 = ["lively", "alive" , "하프", "샤프", "암스트롱"]


반환["arp", "live", "strong"]

여기서 "arp""harp"의 하위 문자열이고, "live""lively"의 하위 문자열이므로 그것은 반환될 수 있다.

다른 예를 보세요:

a1 = ["tarp", "mice", "bull"]

a2 = ["lively", "alive" " ", "하프", "샤프", "암스트롱"]


[]

여기a1 어느 것도 하위 문자열 규칙을 따르지 않으므로 빈 배열이 반환됩니다.

자, 해결 방법을 살펴보겠습니다.

우선 하위 문자열을 보면 하위 문자열인지 판단할 방법이 필요한 것 같습니다.


if(typeof String.prototype.isSubstringOf === "undefined"){
    String.prototype.isSubstringOf = function(str){
        return str.indexOf(this) >= 0;
    };
}
로그인 후 복사

그런 다음

a1을 하나씩 반복하여 현재 요소가 a2에 있는 요소의 하위 문자열인지 확인합니다. 새 배열에 밀어 넣습니다.

그런 다음 루프가 끝나면 새 배열이 채워집니다.

사전순 정렬은 어떻게 하나요? 여전히 알고리즘을 작성해야 합니까?

자바스크립트에 내장된 정렬은 기본적으로 사전순입니다.

그런 다음 새 배열을 직접

정렬하고 돌아오세요!


function inArray(array1,array2){
    var newArray = [];
    for(var i=0;i<array1.length;i++){
        var temp = array1[i];
        if(temp){
            for(var j=0;j<array2.length;j++){
                if(temp.isSubstringOf(array2[j])){
                    newArray.push(temp);
                    break;
                }
            }
        }
    }
    return newArray.sort();
}
로그인 후 복사

위는 흥미로운 JavaScript 질문입니다. 그 안에는 무엇이 있나요? 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 주목해주세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿