JavaScript
[JavaScript] Array정리
shiningjean
2019. 5. 8. 15:46
프로그래밍을 할 때 array와 array를 다루는 메소드의 중요성을 느낀 적이 많았다. 이번에 map같은 자료구조도 같이 정리하려고 한다.
1. 배열 선언 / 배열 길이
var data = ['first', 'second', 'third'];
//배열 선언
console.log(data.length);
//3
var mix = ['str', 1, 50 , null , [2,3,4]];
//배열 안에 모든 타입이 다 들어갈 수 있다. ex) function, array, object ...
2. 배열에 데이터 삽입
var arr = [5];
// length는 1
arr[1000] = 4;
// console.log(arr)로 콘솔에 찍어보면 (1001) [4, empty × 999, 3] 이런 배열을 확인할 수 있다...
위와 같은 형태보다는 push메소드를 통해 배열 뒤에 순차적으로 넣는게 일반적이다.
var arr = [4];
arr.push(5);
console.log(a.length);
3. 배열 메소드
배열을 가공하고 활용할 때 유용한 메소드들
[1,2,3,4].concat("오","육");
// [1,2,3,4,"오","육"]; : conacat으로 배열을 새로운 데이터를 합칠 수 있다
[1,2,3,4].slice(2);
// [3,4] : 앞에서 숫자만큼 자른다.
[1,2,3,4].indexOf(3);
// 2 : 배열의 원소에 특정 값이 들어 있는지 확인.
이러한 메소드 중 기존의 배열을 변경시키기도 하지만 새로운 배열을 반환하는 경우도 있으니 반드시 주의해서 사용해야한다!
ex) concat()은 새로운 배열을 반환한다.
var ori = [2,3,4];
var cha = ori.concat();
console.log(ori); // [2,3,4]
console.log(cha); // [2,3,4]
console.log(ori === cha); // false
4. 배열 탐색 (forEach)
배열을 순회하면서 데이터를 가공할 경우가 많다. for문 말고도 forEach문을 이용해서 배열을 순회할 수 있다.
var arr = [1,2,3,4,"오","육"];
arr.forEach((element) => {
console.log(element);
})
forEach는 함수를 인자로 받는다.(arrow function으로 표기) 기존의 for문의 조건들은 JS의 파서가 알아서 처리함으로써 for문으로 인해 발생할 수 있는 실수를 줄여준다.
5. map
map() 메서드는 배열 내의 요소들에 대해 함수를 호출한 결과를 모아 새로운 배열로 반환한다.
var newArr = ["apple","tomato"]
const sentence = newArr.map((value, index) => {
return index + "번째 과일은 " + value + "입니다.";
});
console.log(sentence)
// 결과 : ["0번째 과일은 apple입니다.", "1번째 과일은 tomato입니다."]
6. filter
filter()메서드는 주어진 판별함수를 통과하는 요소들만 모아 새로운 배열을 반환한다.
var nums = [5, 6, 7, 8, 9];
const result = words.filter(num => num > 7);
console.log(result);
// Array [8,9]
7. every
every()메서드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트합니다.
(빈 array에서 호출 시 무조건 true를 반환)
function isBelow(thisValue) {
return thisValue < 10;
}
var arr = [1, 4, 7, 3, 8];
var arr2 = [1, 4, 5, 10, 15];
console.log(arr.every(isBelow));
// expected output: true
console.log(arr2.every(isBelow));
// expected output: false --> 10, 15 요소에서 걸림
[ edwith - 웹프로그래밍 부스트코스 ] 를 개인적으로 공부하고 정리한 공간입니다. 잘못된 부분은 피드백 주시면 감사하겠습니다