DAY25 <ARRAY>
리스트 형태의 객체
배열은 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성된 데이터의 구조이다.
배열은 대괄호([ ]) 로 묶고 배열안의 요소를 index 값으로 가져와 접근, 제어 할 수 있다.
let arr = [];
let arr1 = ['apple','banana'];
console.log(arr1[0]); //apple // 접근
arr1[0] ='test'; //제어
console.log(arr1); // ['test','banana']
length 라는 속성(porperty)은 배열의 최대 인덱스 +1 (마지막 인덱스 +1) 이다.
let testArr = [];
testArr[200] =3;
console.log(testArr.length); //201
자바스크립트의 배열의 요소에는 모두 다른 데이터 타입이 들어갈 수 있다.
다른 언어에서는 배열의 요소에는 동일한 데이터 타입을 가져야한다.
let testArr = [
3,
"sam",
function () {
return "sam";
},
[2, 3, 4],
];
console.log(testArr); //[ 3, 'sam', [Function (anonymous)], [ 2, 3, 4 ] ]
스택은 LIFO (Last In First Out) 후입 선출 방식의 자료구조이다.
가장 마지막에 데이터를 밀어 넣고, 마지막에 밀어 넣은 데이터 부터 꺼내는 구조이다.
push 배열의 처음에 데이터를 밀어 넣는다.
pop 마지막에 들어온 데이터를 꺼낸다.
let furits = ['귤', '망고', '딸기','복숭아'];
language.pop();
console.log(language); //['귤', '망고', '딸기']
language.push('복숭아복숭아');
console.log(language); // ['귤', '망고', '딸기','복숭아복숭아']
큐는 FIFO (First In First Out) 선입 선출 방식의 자료구조이다.
가장 첫번째에 데이터를 밀어 넣고, 마지막에 넣은 데이터를 꺼내는 구조이다.
shift 가장 앞에 있는 것을 빼고 뒤에 있는 인덱스를 하나씩 줄이면서 앞으로 당겨준다.
unshift 인덱스를 하나씩 밀어 준 뒤 가장 앞으로 값을 추가해준다.
let fruits ['귤','망고','딸기','복숭아'];
console.log(fruits);
people.shift();
console.log(fruits); //['망고','딸기','복숭아']
people.unshift('귤귤');
console.log(fruits);//['귤귤','망고','딸기','복숭아']
배열을 많이 쓰는 이유는 반복문에 최적화 되어있기 때문이다.
배열이 유일하게 가지고 있는 속성 length 가 있기 때문에, for 문을 돌리기 쉽다.
일반적인 for 문
let testArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let i = 0; i < testArr.length; i++) {
if (testArr[i] % 2 === 0) {
console.log(testArr[i]); //2,4,6,8,10
}
}
배열로 값을 출력하기
function testFunc(arr) {
let result = [];
for (item of arr) {
if (item % 2 !== 0) {
result.push(item);
}
}
return result;
}
const testInput = [11, 111, 2, 4, 6, 10, 223];
console.log(testFunc(testInput)); //[11,111,223]
배열의 요소를 key 라는 이름으로 순회한 뒤, key를 return 하기
for (key of testArr) {
console.log(key);
}
배열의 요소를 value라는 이름으로 순회를 한 뒤, value를 return 하기
for (value of testArr) {
console.log(value);
}