일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 파이썬 slice
- 내일배움캠프 최종 프로젝트
- 타입스크립트 props
- 파이썬 딕셔너리
- 한글 공부 사이트
- Next 팀 프로젝트
- 파이썬 for in
- useState
- 프로그래머스
- 리액트 프로젝트
- tanstack query
- typeScript
- 코딩테스트
- REACT
- 타입스크립트
- 자바스크립트
- 파이썬 반복문
- 리액트 훅
- 내배캠 프로젝트
- 파이썬 replace
- 내일배움캠프
- 파이썬 for
- 내일배움캠프 프로젝트
- 파이썬 enumerate
- JavaScript
- 타입스크립트 리액트
- useEffect
- React Hooks
- 리액트 공식문서
- 리액트
- Today
- Total
sohyeon kim
[JS] Array 배열 메소드 splice(), slice(), map(), filter(), join(), split() 등 본문
[JS] Array 배열 메소드 splice(), slice(), map(), filter(), join(), split() 등
aotoyae 2023. 12. 14. 02:33
💡 arr.splice(n, m) : 인덱스 n번부터 m개 특정 요소 지움
❗️ 문자열에는 사용 XXX
let arr = [1, 2, 3, 4, 5];
arr.splice(1, 2);
console.log(arr); // [1,4,5]
➕ arr.splice(n, m, x) : 특정 요소를 지우고 지워진 자리에 x 추가
let arr = [1, 2, 3, 4, 5];
arr.splice(1, 3, 100, 200);
console.log(arr); // [1, 100, 200, 5]
// 여기서 m이 0이라면? 아무것도 지우지 않고 요소 추가 가능!
let arr = ["나는", "호수", "입니다"];
arr.splice(1, 0, "대한민국", "소방관");
console.log(arr); // ['나는', '대한민국', '소방관', '호수', '입니다']
➕ splice는 삭제된 요소를 반환한다.
let arr = [1, 2, 3, 4, 5];
let result = arr.splice(1, 2);
console.log(arr); // [1, 4, 5]
console.log(result); // [2, 3]
💡 arr.slice(n, m) : n부터 m까지 반환. 정확히는 m의 앞까지. m을 안쓰면 끝까지 반환.
❗️ 문자열에도 사용 OOO
let arr = [1, 2, 3, 4, 5];
arr.slice(1, 4); // [2, 3, 4]
➕ n, m 둘 다 안 쓰면 배열을 복사!
let arr = [1, 2, 3, 4, 5];
let arr2 = arr.slice();
console.log(arr2); // [1, 2, 3, 4, 5]
💡 arr.concat(arr2, arr3 ..) : 배열을 합쳐서 새 배열로 반환
let arr = [1, 2];
arr.concat([3, 4]); // [1, 2, 3, 4]
arr.concat([3, 4], [5, 6]); // [1, 2, 3, 4, 5, 6]
arr.concat([3, 4], 5, 6); // [1, 2, 3, 4, 5, 6]
// 각각 하나씩 실행한 값이다.
💡 arr.forEach(fn) : 배열 반복. 함수를 인수로 받는데 그 함수는 3개의 매개변수가 있다.
forEach(해당 요소, 인덱스, 해당 배열 자체) 보통 요소와 인덱스만 활용한다.
let users = ["aoto", "yae", "haru"];
// item => aoto yae haru
// index => 0 1 2
// arr users
users.forEach((item, index, arr) => {});
let users = ["aoto", "yae", "haru"];
users.forEach((name, index) => {
console.log(`${index + 1}. ${name}`);
//1. aoto
// 2. yae
// 3. haru
});
💡 arr.indexOf() : 배열의 특정 요소의 인덱스 반환
💡 arr.lastIndexOf() : 끝에서부터 요소를 찾는다.
let arr = [1, 2, 3, 4, 5, 1, 2, 3];
arr.indexOf(3); // 2
arr.indexOf(3, 3); // 7 n인 3부터 탐색을 시작하고 후에 3이 발견된 idx를 반환
arr.lastIndexOf(3); // 7 끝에서부터 처음 나오는 3의 idx
💡 arr.includes() : 인덱스를 확인할 필요 없고 포함하고 있는지만 알고 싶을 때
let arr = [1, 2, 3];
arr.includes(2); // true
arr.includes(8); // false
💡 arr.find(fn)
: indexOf()처럼 찾는단 의미는 같지만 보다 복잡한 연산이 가능하도록 함수를 연결할 수 있다. (짝수를 찾는다던가..)
주의할 점은, 첫번째 true 값만 반환하고 끝난다. 만약 없으면 undefined 반환.
💡 arr.findIndex(fn)
주의할 점은, 해당 index 반환하고 끝난다. 만약 없으면 -1 반환.
let arr = [1, 2, 3, 4, 5];
const result = arr.find((item) => {
return item % 2 === 0; // 배열에서 짝수인 첫 번째 값을 반환
});
console.log(result); // 2
let userList = [
{ name: "aoto", age: 10 },
{ name: "yae", age: 30 },
{ name: "haru", age: 40 },
];
const result = userList.find((user) => {
if (user.age < 19) {
return true;
}
return false;
});
console.log(result); // {name: 'aoto', age: 10}
// findIndex를 썼다면 0 반환
💡 arr.filter(fn) : find와 달리 조건을 만족하는 모든 요소를 배열로 반환
let arr = [1, 2, 3, 4, 5];
const result = arr.filter((item) => {
return item % 2 === 0; // 배열에서 짝수인 첫 번째 값을 반환
});
console.log(result); // [2, 4]
💡 arr.reverse() : 배열을 역순으로 재정렬
최근 가입된 유저를 보여준다던가. 게시판에서 가장 최근에 작성된 순서로 정렬할 때 자주 사용
let arr = [1, 2, 3, 4, 5];
arr.reverse(); // [5, 4, 3, 2, 1]
💡 arr.map(fn) : 함수를 받아 특정 기능을 시행하고, 새로운 배열을 반환
let userList = [
{ name: "aoto", age: 10 },
{ name: "yae", age: 30 },
{ name: "haru", age: 40 },
];
// 매번 나이를 확인하기 귀찮으니 새 key 값을 가진 배열을 만들어보자.
let newUserList = userList.map((user, index) => {
return Object.assign({}, user, { id: index + 1, isAdult: user.age > 19 });
});
console.log(newUserList);
// [
// { name: "aoto", age: 10, id: 1, isAdult: false },
// { name: "yae", age: 30, id: 2, isAdult: true },
// { name: "haru", age: 40, id: 3, isAdult: true },
// ];
💡 arr.join() : 배열을 합쳐서 문자열로 반환
💡 arr.split() : 문자열을 나눠서 배열로 반환
let arr = ["안녕", "나는", "호수야"];
let result = arr.join(); // 아무것도 전달하지 않으면 아래처럼 쉼표로 구분됨
console.log(result); // 안녕,나는,호수야
let result2 = arr.join(" ");
console.log(result2); // 안녕 나는 호수야
const users = "aoto,yae,haru";
const result3 = users.split(","); // 쉼표 기준으로 나뉘어짐
console.log(result3); // ['aoto', 'yae', 'haru']
const result4 = users.split("");
console.log(result4); // ['a', 'o', 't', 'o', ',', 'y', 'a', 'e', ',', 'h', 'a', 'r', 'u']
💡 Array.isArray() : 배열인지 아닌지 확인해줌
type of를 쓴다면 자바스크립트에서 배열은 객체형에 속하기 때문에
값이 objecrt가 나와서 일반 객체와 구분히 어렵다.
let user = {
name: "aoto",
age: "20",
};
let userList = ["aoto", "yae", "haru"];
console.log(typeof user); // object
console.log(typeof userList); // object
console.log(Array.isArray(user)); // false 객체이기 때문에
console.log(Array.isArray(userList)); // true 배열이기 때문에
🔗 https://youtu.be/pJzO6O-aWew?si=-yoMkxHloWUv4s1p
'JavaScript' 카테고리의 다른 글
[JS] 나머지 매개변수, 전개 구문, 단축 속성명 (0) | 2023.12.14 |
---|---|
[JS] 배열과 객체의 구조 분해 할당 (0) | 2023.12.14 |
[JS] String 문자열 메소드 indexof(), slice(), substring() 등 (0) | 2023.12.14 |
[JS] Math 종류 Math.ceil(), Math.floor(), Math.round(), toFixed() 등 (0) | 2023.12.14 |
[JS] Number로 바꾸기 toString(), parseInt(), parseFloat(), 숫자 판별 isNaN (0) | 2023.12.14 |