배열
기본 함수
let arr = [];
arr.push(1); //뒤에 삽입
arr.pop(); //뒤에 삭제
arr.unshift(0); //앞에 삽입
arr.shift(); //앞에 삭제
요소 잘라내기
let arr = [1,2,3,4,5];
arr.splice(1,2); //n부터 m까지 특정 요소 지움 // [1,4,5]
arr.splice(1,3,100,200); //1부터 3까지 특정 요소 지우고 추가 //[1,100,200,5]
let result = arr.splice(1,2) //삭제된 요소를 반환하기도 한다. // [2,3]
let result2 = arr.slice(1,4) //n부터 m까지 반환 // [2,3,4] 인자가 없으면 전체 반환
배열 합치기
let arr = [1,2];
let arr2 = [3,4];
arr.concat(arr2); //합쳐서 새배열 반환
arr.concat([3,4],[5,6]); //합쳐서 새배열 반환
배열 반복
let arr = ["Mike","sss","ttt"];
arr.forEach((item,index)=>{
console.log(`${item}`); // Mike, sss, ttt
}) //for of 말고도
배열 요소 찾기
let arr = ["Mike","sss","ttt"];
arr.indexOf('sss'); //포함되어있는 곳 위치를 숫자로 반환 // 1
arr.indexOf('sss', 1); //1번지부터 탐색 중복된 값은 탐색 처음 발견한 위치만 반환
arr.reverse(); //역순으로 재정렬
let userList = [
{name: "Mike", age: 30},
{name: "kang", age: 13},
{name: "ssar", age: 11},
];
const result = userList.find((user)=>{
if(user.age < 19){
return true;
}
return false;
}) //첫번쨰 반환값만 반환하고 끝남
//find는 하나만 찾으니 실제로 쓸 일 별로없슴, 만약 조건에 맞는 모든 요소를 찾고싶다면?
const a3 = [1, 2, 3];
const b3 = a3.filter((n) => {
return n != 1;
}); //bool을 return 받는다. ->trun 만 걸러낸다.
console.log(`b3의 값은 : ${b3}`); //2, 3 //삭제할 때 유용
배열 요소 가공
const a5 = [1, 2, 3];
// for (let i = 0; i < a5.length; i++) { //JSX 문법에는 못 씀
// console.log(a5[i]);
// }
// a5.forEach((n) => { //리턴못함
// { ///for each문 return 을 할 수 없다. (리턴이 void)
// console.log(n);
// }
// });
const b5 = a5.map((n) => n + 10); //const b5 = [...a5]; //값 하나하나를 가공할 수 있음. 새로운 배열로 반환
console.log(b5); //11,12,13
배열 합치기, 만들기
let jo = ["안녕","나는","민규"];
let result = jo.join(" ");
const jo2 = "Mike,jane,Tom,Tony";
let result2 = jo2.split(",") //문자열을 배열로 반환
console.log(Array.isArray(jo)); //배열인지 아닌지 구분하기 위해서
배열 정렬
let arr = [1,5,4,3,2];
arr.sort(); // [1,2,3,4,5]
//배열 자체가 변경, 이것 자체로는 불완전, 제대로 할려면 정렬함수를 인자로 받아야 됨
그래서 lodash 라이브러리 활용하는 게 좋음
https://velog.io/@yoosg/Lodash
https://lodash.com/
배열 누산
//for, for of, forEach
let result = 0;
arr.forEach((num) => {
result += num; //배열의 모든 수 합치기
});
const result = arr.reduce((prev, cur) => { //누산값
return prev + cur;
}, 0) //두번째 인수는 초기값
