TIL. 배열 메소드

seul_velog·2022년 2월 11일
0

✍️ 배열 메소드 몇 가지를 간단하게 복습해보자!


isArray()

// true
Array.isArray([]);
Array.isArray([1, 2]);
Array.isArray(new Array());

// false
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(1);
Array.isArray('Array');
Array.isArray(true);
Array.isArray(false);
  • 주어진 인수가 배열이면 true, 배열이 아니면 false반환
  • new Array() 문법을 사용해도 배열을 만들 수 있다.

▼ 빈 배열 만들기

let arr = new Array();  // []



join()

const fruits = ['apple', 'banana', 'orange'];

// ▼ answer
const result = fruits.join('');

console.log(result);  // "applebananaorange"
console.log(fruits);  // ['apple', 'banana', 'orange']
  • 배열의 모든 요소를 연결해 하나의 문자열로 만든다.

▼ 예제)

const a = 123456
a.toString().split("").reverse().join("");
'654321'

1) toString() 메소드를 사용해서 숫자 → 문자열로 변경
2) split() 메소드를 사용해서 여러개의 문자열로 나눈다.
3) reverse() 배열의 순서를 반전시킨다.
4) join() 배열의모든 요소를 연결시켜서 하나의 문자열로 만든다. 만약 ('') 공간을 비워둔다면 ',' 로 구분된다.




indexOf()

const arr = [1, 2, 2, 3];

arr.indexOf(2);  // 1
arr.indexOf(4);  // -1

// 두번째 인수는 검색을 시작할 인덱스이다. 두번째 인수를 생략하면 처음부터 검색한다.
arr.indexOf(2, 2); // 2
  • 원본 배열에서 인수로 전달된 요소를 검색하여 인덱스를 반환
  • 중복되는 요소가 있는 경우, 첫번째 인덱스를 반환, 해당하는 요소가 없는 경우, -1을 반환

▼ 두번째 요소 찾기

const arr = [1, 2, 2, 3];
    
const c = arr.indexOf(2, arr.indexOf(2)+1)

▼ n번째 요소 찾기 [참고]

// indexOf 특정 값이 어디에 들었는지 모두 확인 
var arr = "AABBCCAA"; 
    	
console.log("A값이 위치한 곳 확인");
for(var i = 0; i<arr.length;) {
  console.log(arr.indexOf("A", i)); // 0, 1, 6, 7
  if(i == -1) {
    i++; // 일치하는 값이 없을 시 증가
  } else {
    i = arr.indexOf("A", i) + 1; // 중복 값 출력 방지용
  }
}



filter()

let results = arr.filter(function(item, index, array){});
let users = [
  {id: 1, name: "John"},
  {id: 2, name: "Pete"},
  {id: 3, name: "Mary"}
];

// 앞쪽 사용자 두 명을 반환합니다.
let someUsers = users.filter(item => item.id < 3);

console.log(someUsers.length); // 2
  • 주어진 조건을 충족하는 모든 요소를 모아서 새로운 배열로 반환

    callback - 각 요소를 시험할 함수
    item – 함수를 호출할 요소
    index – 요소의 인덱스
    array – 배열 자기 자신




sort()

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

arr.sort();
console.log(arr); // [1, 2, 3, 4, 5]
  • 배열의 요소를 정렬한 후 그 배열을 반환 (sort()메소드는 원본 배열을 변경)
let arr = [ 1, 2, 3, 10, 11 ];

arr.sort();
console.log(arr); // [1, 10, 11, 2, 3]
  • ❗️ 요소는 문자열로 취급
let arr = [ 1, 2, 3, 10, 11 ];

arr.sort((a, b) => a - b );
console.log(arr);
  • 만약 a-b 대신 b-a 로 정의하면 큰 순서부터 정렬된다.
  • (정렬함수)콜백함수에는 이전값, 현재값이 전달, -값 → 첫번째가 뒤에꺼보다 작다고 판정

▼ 정렬함수

// 정렬 함수(기준을 잡음)를 만들고 이를 인수로 넘겨준다.
function compare(a, b) {
  if (a > b) return 1;
  if (a == b) return 0;
  if (a < b) return -1;
}



배열 메소드 정리(1)
배열 메소드 정리(2)

profile
기억보단 기록을 ✨

0개의 댓글