문자열 배열이 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)를 주목해주세요!