Web/javascript

js 배열

도어누들 2022. 12. 20. 15:58

배열 리터럴 방식

배열 리터럴 방식 추천!!!!

 

new 키워드 할당 비추천!!!!

 

 

배열은 객체입니다

오브젝트 유형 중 하나이면 typeof 적용하면 object로 나온다.

 

배열 요소는 객체일 수 있습니다.

JavaScript 변수는 객체가 될 수 있습니다. 배열은 특별한 종류의 객체입니다.

이 때문에 동일한 배열에 다른 유형의 변수를 가질 수 있습니다.

배열 요소에 객체, 함수, 또다른 배열을 가질 수 있습니다.

 

배열과 object의 차이점

JavaScript에서 배열 은 번호가 매겨진 인덱스 를 사용 합니다. 

JavaScript에서 object  명명된 인덱스(name) 를 사용합니다.

 

배열을 인식하는 방법

1. typeof가 " object"를 반환

2. Array.isArray() (추천)

3. instanceof 연산자는 객체가 주어진 생성자에 의해 생성된 경우 true를 반환

 

 

배열 관련 메서드

join() : 모든 배열 요소를 문자열로 조인

 

pop() :  배열에서 마지막 요소를 제거,  "팝아웃"된 값을 반환

 

push() : 배열에 새 요소를 추가합니다(마지막에), 새 배열 길이를 반환

 

 

 

splice() :  배열 요소를 추가 및/또는 제거, splice()메서드는 새로 set 한 배열을 반환한다. (많이 사용)

 

syntax

array.splice(index(몇번째), howmany(삭제할 수), item1, ....., itemX(추가할 아이템들))

 

 

 

shift() :  첫 번째 배열 요소를 제거하고 다른 모든 요소를 ​​더 낮은 인덱스로 이동합니다,

외부로 이동된 값을 반환

 

unshift() : 배열에 새 요소를 추가하고(처음에) 이전 요소를 "언시프트"합니다,새 배열 길이를 반환

 

concat() : 기존 배열을 병합(연결)하여 새 배열을 반환

 

slice(시작인덱스, 끝인덱스) :  배열 조각을 새 배열로 잘라냅니다.(끝인덱스 포함x) , 새 배열을 반환

 

sort() : 배열을 사전순(오름차순)으로 정렬 / 원배열이 정렬되는것을 반환한다.

 

reverse()

배열의 요소를 반대로 바꿉니다. 배열을 내림차순으로 정렬하는 데 사용할 수 있습니다.(sort 뒤 reverse)

원배열이 반대로 정렬되어 반환한다.

 

 

비교기능

기본적으로 이 함수는 값을 문자열sort() 로 정렬합니다 .

이것은 문자열에 대해 잘 작동합니다("Apple"이 "Banana" 앞에 옴).

그러나 숫자를 문자열로 정렬하면 "2"가 "1"보다 크기 때문에 "25"가 "100"보다 큽니다.

이로 인해 이 sort()메서드는 숫자를 정렬할 때 잘못된 결과를 생성합니다.

비교 기능 을 제공하여 이 문제를 해결할 수 있습니다.

 

 

함수가 두 값을 비교할 때 sort()값을 비교 함수로 보내고 반환된 값(음수, 0, 양수)에 따라 값을 정렬합니다.

sort(function(a, b){return b -a});

결과가 음수이면 a가 앞에 정렬 b됩니다.

결과가 양수이면 b가 앞에 정렬 a됩니다.

결과가 0이면 두 값의 정렬 순서가 변경되지 않습니다.

그러므로 배열을 정렬한 후 인덱스를 사용하여 가장 높은 값과 가장 낮은 값을 얻을 수 있습니다.

교육 파트에 비교 가능을 아주 잘쓴 정렬 예제가 있다.

sort() 비교기능은 실무에도 많이 사용한다 사용법을 mdn 사이트에서 꼭 참고하자

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 

Array.prototype.sort() - JavaScript | MDN

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

developer.mozilla.org

 

배열 반복문

forEach() : 각 배열 요소에 대해 한 번씩 함수(콜백 함수)를 호출합니다.

콜백 함수가 값 매개변수만 사용하는 경우 인덱스 및 배열 매개변수를 생략할 수 있습니다.

 

 

map() : 각 배열 요소에서 함수를 수행하여 새 배열을 만듭니다,값이없는 배열 요소에 대해 함수를 실행하지 않습니다.

콜백 함수가 값 매개변수만 사용하는 경우 인덱스 및 배열 매개변수를 생략할 수 있습니다.

 

 

filter() : 테스트를 통과하는 배열 요소로 새 배열을 만듭니다.

 

reduce() : 각 배열 요소에서 함수를 실행하여 단일 값을 생성(축소)합니다.(왼쪽->오른쪽)

 

reduceRight() : 각 배열 요소에서 함수를 실행하여 단일 값을 생성(축소)합니다.(오른쪽->왼쪽)

 

<참고하기> reduce(),reduceRight() 메소드은 원래 배열을 줄이지 않습니다.

 

 

every() :  모든 배열 값이 테스트를 통과하는지 확인합니다.(true or false 반환)

 

some() : 일부 배열 값이 테스트를 통과하는지 확인(true or false 반환)

 

find() : 테스트 함수를 통과하는 첫 번째 배열 요소의 값을 반환

 

교육파트 위의 반복 메서드를 for문으로 바꾼 예제가 있다.

같이 참고하면 좋다.