Kimsora✨
article thumbnail
Published 2022. 9. 2. 12:55
배열의 매서드 Javascript
320x100
반응형

Array.isArray(obj)

객체가 Array라면 true, 아니라면 false

    모두 true 반환
    
    Array.isArray([]);
    Array.isArray([1]);
    Array.isArray(new Array());
    Array.isArray(new Array('a', 'b', 'c', 'd'));
    Array.isArray(new Array(3));
    Array.isArray(Array.prototype);  =>Array.prototype은 스스로도 배열입니다

unshift(), push(), shift(), pop()

배열 자체를 수정하며,

배열의 처음이나 끝에서 요소 하나를 추가하거나 제거하는 메서드들이다.

추가하는 메서드들은 "배열의 길이"를, 제거하는 메서드들은 "제거된 요소"를 반환한다.

push : 배열의 맨 뒤에 요소를 하나 추가한다.

pop : 배열의 맨 뒤에 요소를 하나 제거한다.

unshift : 배열의 맨 앞에 요소를 하나 추가한다.

shift : 배열의 맨 앞에 요소를 하나 제거한다.

array.splice(시작인덱스,삭제할요소갯수,특정요소추가)

배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경,이 메소드는 원본 배열 자체를 수정,아무 값도 제거하지 않았으면 빈 배열을 반환한다.

시작할인덱스

음수로 지정한 경우: 배열의 끝에서부터 요소를 센다

배열의 길이보다 큰 수를 지정한 경우: 실제 시작 인덱스는 배열의 길이로 설정

절대값이 배열의 길이보다 큰 경우: 0으로 세팅

const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]

months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]

array.slice(시작 인덱스,끝 인덱스)

복사본을 새로운 배열 객체로 반환한다. 즉, 원본 배열은 수정되지 않는다

시작점에 인덱스

undefined인 경우: 0부터 

음수를 지정한 경우: 배열의 끝에서부터의 길이를 나타낸다. slice(-2)를 하면 배열의 마지막 2개의 요소를 추출한다.

배열의 길이와 같거나 큰 수를 지정한 경우: 빈 배열을 반환한다.

 

끝 인덱스(end를 제외하고 그 전까지의 요소만 추출한다.)

지정하지 않을 경우: 배열의 끝까지 

음수를 지정한 경우: 배열의 끝에서부터의 길이를 나타낸다

배열의 길이와 같거나 큰 수를 지정한 경우: 배열의 끝까지 추출.

 

array.concat()

메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환합니다.

const array1 = ['a', 'b', 'c'];
const array2 = ['d', 'e', 'f'];
const array3 = array1.concat(array2);

console.log(array3);
// expected output: Array ["a", "b", "c", "d", "e", "f"]

 

array.forEach(func(value, index, array))

배열을 순회하면서 인자로 전달한 함수를 호출하는 반복문

value : 현재 순회 중인 요소

index : 현재 순회 중인 요소의 index

array : 배열 객체

배열명.forEach(요소명 => { 실행문(요소명) });

const arr = ['apple', 'kiwi', 'grape', 'orange'];

arr.forEach((item, index, arr) => {
  console.log("index: " + index + ", item: " + item
      + ", arr[" + index + "]: " + arr[index]);
});

=>
index: 0, item: apple, arr[0]: apple
index: 1, item: kiwi, arr[1]: kiwi
index: 2, item: grape, arr[2]: grape
index: 3, item: orange, arr[3]: orange

array.indexOf(),lastIndexOf()

배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환 ,indexOf 함수와 반대 방향인 배열 뒤에서부터 원소의 위치를 탐색

존재하지 않으면 -1을 반환

indexOf

let arr1 = ['tiger', 'lion', 'cat', 'dog', 'cat'];
console.log(arr1.indexOf('cat')); // 찾은 경우 인덱스 반환: 2
console.log(arr1.indexOf('rabbit')); // 못 찾은 경우 -1


last indexOf

let arr2 = ['tiger', 'lion', 'cat', 'dog', 'cat'];
console.log(arr2.lastIndexOf('cat')); // 4
console.log(arr2.lastIndexOf('rabbit')); // 못 찾은 경우 -1

array.includes()

메서드는 배열이 특정 요소를 포함하고 있는지 판별

const array1 = [1, 2, 3];

console.log(array1.includes(2));
// expected output: true

const pets = ['cat', 'dog', 'bat'];

console.log(pets.includes('cat'));
// expected output: true

console.log(pets.includes('at'));
// expected output: false

array.find()

find() 메소드는 주어진 테스트 함수의 조건을 만족하는 첫 번째 요소 값을 반환

조건에 맞는 요소를 찾을 수 없다면 undefined를 반환

find()는 호출되는 배열을 변경하지 않는다. 

const array1 = [5, 12, 8, 130, 44];

const found = array1.find(element => element > 10);

console.log(found);
// expected output: 12

array.findIndex() 

메서드는 주어진 판별 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환

 만족하는 요소가 없으면 -1을 반환

const array1 = [5, 12, 8, 130, 44];

const isLargeNumber = (element) => element > 13;

console.log(array1.findIndex(isLargeNumber));
// expected output: 3

array.filter()

테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환

let animals = [
  { species: 'mammalia', name: "cat" },
  { species: 'reptiles', name: "lizard" },
  { species: 'amphibia', name: "flog" },
  { species: 'mammalia', name: "dog" },
  { species: 'amphibia', name: "salamander" }
];

  let result = animals.filter((value) => value.species == 'mammalia')
  

console.log(result);
=>

[{ species: "mammalia", name: "cat" }, { species: "mammalia", name: "dog" }]

array.join()

배열의 모든 요소를 연결해 하나의 문자열로 만든다

 

const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
=> expected output: "Fire,Air,Water"

console.log(elements.join(''));
=>expected output: "FireAirWater"

console.log(elements.join('-'));
=> expected output: "Fire-Air-Water"

 

array.map()

배열의 모든 값들을 순환 후 새로운 배열을 반환하기 위해 사용

const arr1 = [1, 2, 3, 4];

const arr2 = arr1.map(function add(currValue) {
  currValue = currValue + 1;
})

document.writeln(arr1 + '<br>'); // [1, 2, 3, 4]
document.writeln(arr2[0] + '<br>'); // undefined
=>callback 함수에서 값을 리턴하지 않으면, 
map() 함수에 의해 생성되는 새로운 배열(arr2)의 element는 undefined 값을 가지게 되고,
arr1의 값도 변경되지 않눈다

forEach() 기존의 Ararry를 변경하는 반면, map()은 새로운 Ararry를 반환

array.reduce()

배열의 왼쪽부터 콜백 함수를 실행 후 누산함

배열.reduce( function(acc, cur, index, arr) {} [, initialValue] )

누산기accumulator (acc),현재 값 (cur)현재 인덱스 (idx),원본 배열 ,초기값(initialValue)

array.sort()

배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다

const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]

문자열 대신 숫자를 비교하기 위해 compare 함수는 a에서 b를 뺄 수 있습니다. 다음 함수는 배열을 오름차순으로 정렬합니다 (Infinity 및 NaN이 포함되어 있지 않은 경우).

var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
  return a - b;
});
console.log(numbers);

// [1, 2, 3, 4, 5]

 

mutable(원본을 수정하는) method

arr.push() 
=>배열의 맨 뒤에 요소 추가 <-> immutable한 concat과 비교된다

arr.pop() 
=>배열의 맨 뒤의 요소 삭제

arr.shift() 
=>배열의 맨 앞의 요소 삭제

arr.unshift() 
=>배열의 맨 앞에 요소 추가

arr.fill(value, startIndex, endIndex) 
=> 배열의 startIndex부터 endIndex까지 value로 채워넣음. 채우고 난 후의 값을 return한다

arr.reverse() 
=>배열의 순서 반전시켜return한다

arr.sort() 
=>배열의 정렬하여 배열을 return한다

arr.splice(startIndex, deleteCount, item1, item2) 
=> startIndex부터 시작해서 deleteCount만큼의 요소를 제거한 뒤 item들을 해당 인덱스에 추가, 
변화된 뒤의 배열을 return한다

 

Immutable(원본을 수정하지 않는) method

arr.slice(start, end) 
=> 배열의 stsart지점부터 end인덱스 전까지를 추출함. 추출한 부분을 return한다. 
=>arr.slice() 로 원본과 독립적인 배열을 복사할 수 있다


arr.includes(element,start) 
=>start index부터 요소가 있는지 판별해서 있으면 true를 return한다.


arr.indexof(element,start) 
=> start index부터 찾기 시작해서 요소의 index를 return한다. 찾을 수 없으면 -1 


arr.join() 
=> 배열의 각 배열을 문자열로 반환

newarr = arr1.concat(arr2) 
=> push와 비슷하지만 원본을 변화시키지 않고 새로운 배열을 return한다

 

728x90
반응형

'Javascript' 카테고리의 다른 글

원시 자료형과 참조 자료형  (0) 2022.09.06
객체 (Object)  (2) 2022.09.05
문자열  (0) 2022.08.25
Math.()함수  (0) 2022.08.25
조건문(conditional statements)  (0) 2022.08.25
profile

Kimsora✨

@sorarar

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그

WH