프로그래밍/Javascript

자바스크립트 중급 7 - 배열 메소드1(Array methods)

mimi04 2023. 6. 12. 18:29

*기초 강좌 배열(Array) 메소드: push()-뒤에 삽입 / pop()-뒤에 삭제 / unshift()-앞에 삽입 / shift()- 앞에 삭제

 

arr.splice(n,m) : 특정 요소 지움. → n번째 요소부터 m개 지워라.

    let arr = [1, 2, 3, 4, 5];

    arr.splice(1,2);    →1번째(2)부터 2개 지움 → 2,3 삭제 

    console.log(arr);     //[1,4,5]

 

arr.splice(n,m,x) : 특정 요소 지우고 추가

    let arr = [1, 2, 3, 4, 5];

    arr.splice(1, 3, 100, 200);    → 1번째(2)부터 3개(2,3,4) 지우고 그 자리에 100, 200 추가.

    console.log(arr);    //[1, 100, 200, 5]

 

    let arr = ["나는", "철수", "입니다"];

    arr.splice(1, 0, "대한민국", "소방관");    →1번째 부터 0개이므로 하나도 안지우고 0~1번째 사이에 "대한민국", "소방관" 추가.

    //["나는", "대한민국", "소방관", "철수", "입니다"]

 

arr.splice() : 삭제된 요소 반환

    let arr = [1, 2, 3, 4, 5];

    let result = arr.splice(1,2);  → 2,3 삭제

    console.log(arr);   //[1, 4, 5]

    console.log(result);     //[2, 3]

 

 ④arr.slice(n,m) : n부터 m까지 반환 (m-1까지 반환 , m이 없으면 문자열 끝까지)

     let arr = [1,2,3,4,5];

     arr.slice(1,4);     //[2,3,4]

 

     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) : 배열 반복(순회)

      let users = ['Mike', 'Tom', 'Jane'];

      users.forEach((item, index, arr) => {

              ..            item : Mike, Tom, Jane   / index : 0 , 1 , 2  /arr : users   (보통 item,index 두 개만 씀)

        });

//forEach

let arr = ["Mike", "Tom", "Jane"];

arr.forEach((name, index) => {
  console.log(`${index + 1}.${name}`);    //"1.Mike"   "2.Tom"   "3.Jane"
});

    

    ⑦arr.indexOf / arr.lastIndexOf

        let arr = [1,2,3,4,5,1,2,3];

        arr.indexOf(3);    //2    → 3의 위치

        arr.indexOf(3,3);    //7    → 인수가 2개일 경우, 두번째 숫자는 시작위치. 즉, 3부터 시작했을 때 맨뒤 3의 위치 반환.

        arr.lastIndexOf(3);     //7    → 뒤에3의 위치 반환

 

    ⑧arr.includes() : 포함여부 확인

       let arr = [1,2,3];

       arr.includes(2);     //true

       arr.includes(8);     //false

 

     ⑨arr.find(fn)  /  arr.findIndex(fn) : indexOf와 찾는다는 의미는 동일하나, 함수를 연결하여 보다 복잡한 연산 가능 

        첫번째 true값만 반환하고 끝난다.

        만약 없으면 undefined 를 반환.

 

let arr = [1, 2, 3, 4, 5];

const result = arr.find((item) =>{
  return item % 2 === 0;
});   //나머지가 0일 때= 짝수

console.log(result);    //2
let userList = [
  { name : "Mike", age:30 },
  { name : "Jane", age:27 },
  { name : "Tom", age:10 },
];

const result = userList.find((user)=>{
  if(user.age < 19){
    return true;
  }
  return false;
});

console.log(result);
let userList = [
  { name : "Mike", age:30 },
  { name : "Jane", age:27 },
  { name : "Tom", age:10 },
];

const result = userList.findIndex((user)=>{
  if(user.age < 19){
    return true;
  }
  return false;
});

console.log(result);    //2

 

*arr.filter(fn)  → 만족하는 모든 요소를 배열로 반환   

const arr = [1, 2, 3, 4, 5, 6];

const result = arr.filter((item) => {
  return item % 2 === 0;
});

console.log(result);    //[2,4,6]

 

*arr.reverse()  : 역순으로 재정렬 

  let arr = [1,2,3,4,5];

  arr.reverse();    //[5,4,3,2,1]

 

 *arr.map(fn) : 함수를 받아 특정 기능을 시행하고 새로운 배열을 반환

//arr.map()

let userList = [
  { name: "Mike", age: 30},
  { name: "Jane", age: 27},
  { name: "Tom", age: 10},
];

let newUserList = userList.map((user, index) => {
  return Object.assign({}, user, {
    isAdult: user.age > 19,
  });
});

console.log(newUserList);

 

//join : 각 문자열을 괄호 안의 문자로 이어줌

let arr = ["안녕", "나는", "철수야"];

let result = arr.join("-");

console.log(result);
//split : 문자열에서 괄호 안의 문자를 기준으로 나누어서 반환.

const users = "Mike,Jane,Tom,Tony";

const result = users.split(",");

console.log(result);


//split

let str = "Hello, My name is Mike.";
const result = str.split("");

console.log(result);

 

*Array.isArray: 배열인지 확인(배열:true/ 배열아님: false) 

//Array.isArray()

let user = {
  name : "Mike",
  age : 30,
};

let userList = ["Mike", "Tom", "Jane"];

console.log(typeof user);
console.log(typeof userList);

console.log(Array.isArray(user));
console.log(Array.isArray(userList));

 

 

  

 

반응형