자바스크립트 리뷰
문자열과 배열의 prototype에 메소드 추가하기: 특정 데이터가 문자열이나 배열에 들어가 있는지 확인하는 기능 [혼공자 6-2-2]
가문비7
2023. 4. 8. 12:39
검색 편의를 위해 제목에 다 썼다.
1) 일단 문자열에서 어떤 특정 문자열이 포함되었는지 여부를 확인하는 메소드다.
const j = "안녕하세요"
String.prototype.contain = function(st) {
return this.indexOf(st)>=0
}
string = "asdf"
console.log(`'df' in ${string}:`,string.contain('df'));
indexOf() 는 배열이나 문자열에 파라미터로 입력한 값이 들어있으면 그 있는 위치를 0 이상의 정수로 return한다. 안 들어있으면 -1을 return 한다. 위의 코드는 그걸 이용했다.
return this.indexOf(st) >= 0 부분에서는 0 이상인지 그렇지 않은지 여부에 따라 true 나 false를 리턴할 것이다.
2) 다음은 array에서 특정 요소가 들어있는지 여부를 확인하는 메소드다.
Array.prototype.contain = function(item){
if (item === undefined){
return false
} else {
return this.indexOf(item) >= 0
}
array1 = ['안녕', 23, b={name: 'John', age: 30}, func1 = function (a,b){return a+b}]
console.log(array1.contain(func1))
console.log(array1.indexOf(23))
원리는 1)과 똑같다. item 위치에 배열에 들어갔는지 여부를 확인하고자 하는 요소를 넣어 준다. 콘솔창에서 true 나 false 혹은 not defined 에러를 출력한다.^^ if 문으로 해결하려 했으나 실패했다.