React/한입크기로 잘라먹는 리액트
[javaScript] 배열 메서드
냠냠쿠
2024. 12. 31. 12:01
728x90
1. 요소 조작
push | 배열 맨 뒤에 추가 + 배열의 길이 반환 | arr1.push(1); arr1.push(3, 4, 5, 6); |
pop | 배열의 맨 뒤 요소를 반환한 뒤 삭제 | arr1.pop(); |
shift | 배열의 맨 앞 요소를 반환한 뒤 삭제 | arr1.shift(); |
unshift | 배열의 맨 앞에 요소 추가 + 배열의 길이 반환 push와 pop보다 속도가 느림 |
arr.unshift(0); |
slice | 배열의 특정 범위를 잘라 새로운 배열로 반환 원본 배열의 값 변경 X |
let test = arr1.slice(2,5); (잘라낼 인덱스 +1 해야함) arr1.slict(2); 끝까지 자를거면 잘라낼 인덱스 생략 arr1.slice(-1); 뒤에서 하나만 자르기 |
concat | 이어붙여 새로운 배열 반환 | let concatTest = arr1.concat(arr2); |
2. 순회와 탐색
forEach | 모든 요소를 순회, 각 요소에 동작을 수행 | arr1.foreach(function(item, idex, arr) { arr2.push(item*2); }); → 콜백함수는 배열의 요소만큼 호출 모든 배열을 돌면서 *2 |
includes | 배열에 특정 요소가 있는지 확인 | arr.includes(3); //true or false |
indexOf | 특정 요소의 인덱스(위치)를 찾아 반환 (얕은비교) 특정 객체값을 찾아낼 수는 없어서 객체값을 찾으려면 findIndex을 써야함 |
arr1.indexOf(2); //2의 값을 찾아 해당 인덱스 반환 |
findIndex | 모든 요소를 순회하면서 콜백함수를 만족하는 특정 요소의 인덱스(위치)를 찾아 반환 | let arr1 = [ 1, 2, 3 ]; arr1.findIndex( (item) => { if(item%2 !==0) return true; //만족하는 값인 0이 반환 }); 위 함수를 아래와 같이 더 간단하게 가능 arr1.findIndex( (item) => item %2 !==0 ); 만족하는 값이 없으면 -1 반환 |
find | 모든 요소를 순회하면서 콜백함수를 만족하는 요소를 찾아 그대로 반환 | let arr = [ { name : "홍길동"}, { name : "김길동"}, ]; arr.find( (item) => item.name ==="홍길동" ); // { name : "홍길동"} (객체 자체가 반환) |
3. 배열 변형
filter | 기존 배열에서 조건을 만족하는 요소만 필터링하여 새로운 배열로 변환 | arr = [ { name : "홍길동", hobby:"축구"}, { name : "김길동", hobby:"배구"}, { name : "이길동", hobby:"축구"}, ]; arr.filter( (item) => item.hobby ==="축구" ); // { name : "홍길동", hobby:"축구"}, // { name : "이길동", hobby:"축구"} // 조건에 만족하는 2개의 요소만 나옴 |
map | 배열의 모든 요소를 순회하면서 각 콜백함수를 실행하고 그 결과를 모아서 새로운 배열로 변환 | let arr1 = [1,2,3]; conste result = arr1.map( (item, idx, arr) => { console.log(idx, item); return item * 2 //리턴을 시키면 새 배열을 반환해줌 }); console.log(result); // [ 2, 4, 6 ] arr = [ { name : "홍길동", hobby:"축구"}, { name : "김길동", hobby:"배구"}, { name : "이길동", hobby:"축구"}, ]; let names = arr.map( (item) => item.name); //이름만 있는 배열을 반환 |
sort | 배열 정렬 (사전순) - 문자열이 아니라 숫자인경우 정상적으로 동작되지 않음 - 원본 배열 정렬 |
arr.sort(); //숫자 오름차순 arr.sort( (a, b) => { //오름차순 if(a>b) { return 1 // b, a 배치 } else if(b>a) { return -1 // a, b 배치 } else { //값이 같으면 자리 안바꿈 return 0; } }); //숫자 내림차순 arr.sort( (a, b) => { if(a>b) { return -1 } else if(b>a) { return 1 } else { return 0; } }); |
toSorted | 원본 배열은 두고 새 배열을 반환 - 원본 배열 정렬X |
arr.toSorted(); |
join | 배열의 모든 요소를 하나의 문자열로 합쳐서 반환 | arr = ["hello", 'nice', 'to', 'meet', 'you']; arr.join(); //hello,nice,to,meet,you 기본적으로 , 이지만 바꾸고싶다면 join("-") , join(" ") 등으로 바꿔쓰면 됨 |
728x90