>  기사  >  웹 프론트엔드  >  JavaScript 재미있는 질문: 살인자를 찾아보세요

JavaScript 재미있는 질문: 살인자를 찾아보세요

黄舟
黄舟원래의
2017-02-15 14:30:381235검색

주요 증인이 살해당했고, 죽기 전 범인의 이름을 밝히려 했으나 목소리가 약하고 간헐적이어서 구별하기 어려웠다.

문자열로 표시되는 그의 녹음을 얻었습니다. 이 문자열은 문자로 시작하며 각 "~" 기호는 불확실한 문자를 나타냅니다.

문자열의 길이가 이름의 길이를 의미하지는 않습니다. 살인자의 이름을 말하기 전에 죽을 수도 있기 때문입니다.

경찰은 용의자 명단을 제공했으며, 녹음 내용을 토대로 살인범을 찾을 수 있도록 협조를 요청했습니다.

결과는 문자열이어야 합니다. 찾을 수 없으면 빈 문자열을 반환합니다. 여러 개일 경우 쉼표로 구분하여 반환하세요.


	
	var suspects=['Bernard Deltheil','Peter Gone','Peter Reeves','Roland Scorsini']
	
	sc('b~~~~~~~~~~~~~~l',suspects); //'Bernard Deltheil'
	sc('p~t~r',suspects);			 //'Peter Gone,Peter Reeves'
	sc('a~b~c~~d',suspects);         //''


참고:

1. 대소문자를 구분하지 않고 각 용의자의 이름을 일치시킵니다.

2. 코드는 최대한 짧아야 합니다

다음 구현에서는 먼저 정규식을 사용하여 문자열 내의 "~" 기호를 "."로 바꾼 다음 사용했습니다. 패턴의 일부로 이름과 일치합니다.


function sc(s,a){
    var r = [];
    a.forEach((e)=>{if(new RegExp("^" + s.replace(/~/g,"."),"i").test(e))r.push(e);});
    return r.join(",");
}


위 내용은 살인자를 알아내는 재미있는 JavaScript 질문입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 주목하세요. )!

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