indexOf
파라미터로 primitive type을 받음
-primitive type 비교에 적합
-비교 연산자를 통해 배열과 비교
findIndexOf
파라미터로 callback 함수를 받음
-object type 비교에 적합
-값의 비교 뿐만 아니라 홀수값 찾기, 객체 비교 등 다양한 조건 정의 가능
str.match(regexp)
regexp
: 3가지 인자 중 1개를 가짐
- 찾을 문자(단어) =
("text")
- 정규식 =
(/text)
- 매개변수 없음 =
()
정규식 규칙 match(/text) = 찾는 문자와 일치하는 문자열이 존재 시, 반환 match(/text/g) = 찾는 문자와 일치하는 모든 문자열 반환 (대소문자 구분) match(/text/gi) = 찾는 문자와 일치하는 모든 문자열 반환 (대소문자 구분 X)return
문자열이 정규식(찾을 문자)과 일치하면, 일치하는 문자열을 포함하는 배열을 반환
일치 하는 것이 없을 시null
반환
매개변수를 할당하지 않을 시, 빈 문자열을 포함한 배열을 반환
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
console.log(matches_array);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
const str = "coding everybody, everywhere, everytime";
let search = /every.+/gi;
console.log(str.match(search);
// [everybody, everywhere, everytime]
indexOf()
함수는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환
arr.indexOf(searchElement[, fromIndex])
searchElement
: 배열에서 찾을 요소
fromIndex
: 검색을 시작할 indexreturn
배열 내 요소의 최초의 인덱스
발견되지 않으면 -1
var array = [2, 9, 9];
array.indexOf(2); // 0
array.indexOf(7); // -1
array.indexOf(9, 2); // 2
array.indexOf(2, -1); // -1
array.indexOf(2, -3); // 0
var result = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.indexOf(element);
while (idx != -1) {
result.push(idx);
idx = array.indexOf(element, idx + 1);
}
console.log(result); // [0, 2, 4]
findIndex()
함수는 제공된 callbk 함수
를 충족하는 배열의 첫 번째 요소의 인덱스를 반환, 테스트 함수를 만족시키는 요소가 없으면 -1이 반환
arr.findIndex(callbk(elem[, index[, array]][, thisArg])
callbk
: 배열의 각 요소에 실행할 함수callbk가 받는 3가지 인자 - elem : 현재 요소값 - index : 현재 요소값의 index - array : findIndex()를 호출한 배열
thisArg
: callbk 를 실행할 때 this 로 사용할 객체return
배열 내 callbk 함수의 조건을 만족하는 첫 인덱스 반환
발견되지 않으면 -1
const arr = [5, 6, 9, 1, 6, 3, 2, 1, 2, 7, 9, 4, 3];
const find1 = arr.findIndex((element, index, array) => {
return index < 7 && index > 5;
});
const find2 = arr.findIndex((element, index, arr) => element === 3);
const find3 = arr.findIndex((e) => e > 8);
const find4 = arr.findIndex((e) => e > 10);
console.log('findIndex1:', find1); // 6
console.log('findIndex2:', find2); // 5
console.log('findIndex3:', find3); // 2
console.log('findIndex4:', find4); // -1
const arr = [
{name : 'banana', price: 1000},
{name : 'apple', price:1500},
{name : 'orange', price: 2000}
];
function findApple(element) {
if(element.name === 'apple') return true;
}
console.log(arr.findIndex(findApple)); // 1