본문 바로가기

🥸 웹앱개발 이모저모/Java Script

[JS] 배열 메소드, 반복문 | sort(), forEach(), for in, for of

배열 메소드

  • concat()
  • 배열3 = 배열1.concat(배열2); //배열3에는 배열1과 배열2가 합쳐진 배열이 됨
  • join() : 배열 안의 요소를 문자열로 만들어서 return
  • 배열1 = [10, 20, 30, 40]; 배열3 = 배열1.join(","); //10,20,30,40 자체가 하나의 문자열이 됨 //즉 10 20 30 40을 , 로 이어줌 배열2 = 배열1.join(""); // 10203040 이 됨 console.log(typeof(배열3)); //string 출력
  • pop() : 맨 뒤 요소 삭제
  • push() : 맨 뒤에 요소 추가
  • reverse() : 배열 뒤집기
  • sort() : 배열 정렬 (요소를 모두 문자열로 인식해서 정렬함 → 100과 13을 13, 100 X 100, 13으로 정렬함)
    • 해결법
      • compare 함수 사용
      • array1 = [100, 21, 13, 40, 200]; arrat1.sort(function compare(a,b){ if(!(isNaN(a) && isNaN(b))){ //a와 b가 둘다 숫자가 아니면 return a-b; //a가 b보다 유니코드가 크면 + 반환 -> a가 뒤 b가 앞으로 오게됨 // a < b이면 -반환 -> a가 앞 b가 뒤로감, a=b면 0반환 자리 그대로 } });
  • slice() 끝까지 복사하고 싶으면 어떡하지 ? 두번째 파라미터인 end를 적지않으면 끝까지 복사됨
  • let array1 = [1,2,3,4,5]; let array2 = array1.slice(2,4); console.log(arrat2); //[ 2, 3 ]
  • ⇒ slice(2) 하면 2부터 끝까지 복사됨
  • slice(begin, end) : begin인덱스부터 end 앞 인덱스까지 복사
  • splice(start, delete 개수, item1, item2 …)
  • let array1 = [10,20,30,40]; arrray1.splice(1,0,44); //1 인덱스에tj 0개 지우고 44를 집어 넣어라 console.log(array1); //[10, 44, 20, 30, 40] array.splice(3,2,33,54); //3인덱스부터 2개 삭제하고 33, 54 넣기 console.log(array1); //[10, 44, 20, 33, 54]

콜백 함수와 함께 사용하는 메소드

  • forEach()
let array = [1,2,3];
array.forEach((item, index) => {
    console.log(index + "번째 요소는 " + item + "입니다.");
} //0번째 요소 1, 1번째 요소 2 .. 이런식으로 출
  • map
let array1 = [10,20,30,40,50];
let array2 = [1,1,0,0,1];
let arraay3 = array1.map((item,index) => {
    return item + 100;
});
console.log(array3); // [110, 120, 130, 140, 150]

+ 추가 array3[i] = array1[i] * array2[i] 가 되도록 만들기

let array1 = [10, 22, 34, 50, 30];
let array2 = [1, 1, 0, 0, 1];

// forEach 형태로
let array3 = [];
array1.forEach((item, index) => {
  array3[index] = item * array2[index];
});
console.log(array3);

//map 형태로
let array = array1.map((item, index) => {
  return item * array2[index];
});
console.log(array4);
  • filter() : 주어진 함수에서 참인 요소만 배열로 반환
let array1 = [10,22,34,50,30];
let array2 = array1.filter((item, index) => {
    return item >= 30;
});
console.log(array2); //[34, 50, 30]

반복문

  • for in 반복문

for (let 인덱스 in 배열)

let array = ["사과", "딸기", "배"];
for(let i in array){
    console.log(array[i]); //사과 딸기 배 출력
}

//같은 표현
for(let i=0; i<array.length; i++){
    console.log(array[i]);
}
  • for of 반복문

for (let 요소 of 배열)

let array = ["사과", "딸기", "배"];
for(let i of array){
    console.log(i); //사과 딸기 배 출력,
}
//i 자체에 요소가 저장되어 출력됨