- 자바스크립트 배열 다루기


* 기본 동작

var fruits= [];


- 원소 추가
fruits.push('바나나');


- 원소 삭제
var pos = fruits.indexOf("바나나"); //검색
var removedItem = fruits.splice(pos, 1);


- 배열 복제
var shallowCopy = fruits.slice();


//=========================
* 검색
    - find() : 조건에 맞는 첫번째 값을 반환, 없으면 undefined
var array1 = [5, 12, 8, 130, 44];
var found = array1.find(function(element) {
  return element > 10;
});
결과 =  12
    
    - findIndex(): 조건에 맞는 원소의 인덱스(키)를 반환, 없으면 -1


* 조건 선택 : filter()
    //글자수 6개이상만 선택
const result = words.filter(word => word.length > 6);

    //배열 공백 없애기 (remove empty holes)
arr1 = arr1.filter(arr => arr != null);


//============================
* 배열 값 검사

- some()
    - 하나라도 조건에 맞으면 true 반환
var array = [1, 2, 3, 4, 5];
var even = function(element) {  return element % 2 === 0; };//짝수 찾기 콜백함수
console.log(array.some(even));//


- every()
    - 모두가 조건에 맞아야 true 반환


- includes()
    - 특정 요소가 포함되어있으면 true
    

//========================
* 정렬 - sort()

* 역순으로 재배열 - reverse()

* join() - 모든 요소를 연결해 하나의 문자열 만듬

//========================
* 합치기 : concat()
var array1 = ['a', 'b', 'c']; var array2 = ['d', 'e', 'f'];
console.log( array1.concat(array2) );


* 채우기 : fill()
var array1 = [1, 2, 3, 4];
    //2부터 4를 0으로 채움
console.log(array1.fill(0, 2, 4)); //  [1, 2, 0, 0]
console.log(array1.fill(6)); // [6, 6, 6, 6]


//==================================
* 배열 처리 : map()
    //
const map1 = array1.map(x => x * 2);


* foreach()
    - 배열 요소마다 주어진 함수를 실행
var array1 = ['a', 'b', 'c'];
array1.forEach(function(element) {
  console.log(element);
});

// expected output: "a"
// expected output: "b"
// expected output: "c"


//===================================
* 하나의 값으로 만들기 : reduce()
const array1 = [1, 2, 3, 4];
const reducer = (accumulator, currentValue) => accumulator + currentValue;
console.log(array1.reduce(reducer)); //1 + 2 + 3 + 4 =10
console.log(array1.reduce(reducer, 5));// 초기값=5,  5 + 1 + 2 + 3 + 4


//============================
* 자르기 : slice()
animals.slice(2, 4));//2부터 4까지 자르기


* 배열 변환 : 제거, 추가, 변환 - splice()
    - 자신을 변화시킴
    - splice(start[, deleteCount[, item1[..);
    //제거
arr.splice(3, 2);//[3]위치에 2개 삭제
    //삽입
arr.splice(3, 0, 'val');//[3]위치에 삭제없이 'val' 삽입
    //변환
arr.splice(3, 1, 'val');//[3]위치에 1개 삭제하고 'val' 삽입



//=============
flat() - 다중 중첩된 배열을 중첩되지 않은 배열로 만듬
    - 중간 구멍도 메움
var arr1 = [1, 2, [3, 4]]; arr1.flat(); // [1, 2, 3, 4]
var arr4 = [1, 2, , 4, 5]; arr4.flat(); // [1, 2, 4, 5]



//====================
from()     - 얕게 복사(분리시킴)
    - Array.from(arrayLike[, mapFn[, thisArg]])

console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]


//==========
entries() : 키/값 쌍을 가지는 새로운 Array Iterator 객체를 반환
var array1 = ['a', 'b', 'c'];

var iterator1 = array1.entries();

console.log(iterator1.next().value);
// expected output: Array [0, "a"]


//======

// 참고

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


반응형
Posted by codens