💡 Array(=배열)이란?
: 연관된 데이터를 하나의 변수에 담아 관리하기 위한 집합, Grouping
1) 여러 자료형의 데이터를 하나의 배열에 담을 수 있음. ➪ 변수의 갯수를 줄여줌
2) 관련성이 있는 데이터를 함께 저장하여 관리하기 용이함.
3) 코드의 가독성 향상.
1) let arr1 = [];
let arr1 = [];//빈 배열.
let arr1 = [1,'red',false];//길이가 3이고, 1,'red',false의 요소를 갖는 배열.
2) let arr2 = new Array();
let arr2 = new Array();//빈 배열.
let arr2 = new Array(3);//길이가 3인 배열. 요소의 값은 모두 undefined.
let arr2 = new Array(1,'red',false);//
let myArray = [19, 'good', false];
myArray.push(345, true);
console.log(myArray);//[19, 'good', false, 345, true]
let myArray = [19, 'good', false, 345, true];
myArray.splice(2,1,true);
//[2]번 인덱스(=세번째)에서 부터 1개 요소 지우고 true 추가
console.log(myArray);//[19, "good", true, 345, true]
myArray.splice(3,0,500);
//[3]번 인덱스(=네번째)에 요소 지우지 않고 500 추가
console.log(myArray);//[19, "good", true, 500, 345, true]
myArray.splice(3,4);
//[3]번 인덱스(=네번째)에서 부터 4개 요소 지우기. 지울 요소가 그보다 적으면 끝까지 제거.
console.log(myArray);//[19, "good", true]
let myArray = [19, 'good', false, 345, true];
myArray.pop();
console.log(myArray);//[19, 'good', false, 345]
myArray.shift();
console.log(myArray);//['good', false, 345]
1) 코드의 길이를 줄여 효율성과 가독성을 향상시킴.
2) 사람이 일일히 작업할 때의 실수를 없앨 수 있음.
📍문법
for(counter 초기상태; 조건식; counter 변화){
수행할 동작
}
ex)
//'hello wecode!'라는 문장을 10번 반복출력
for(let step = 0; step < 10; step++){
console.log('hello wecode!');
}
//콘솔에 1부터 10까지 1씩 더해가며 출력하기
for(let i = 1; i <= 10; i++){
console.log(i);
}
//or
for(let i = 0; i < 10; i++){
console.log(i+1);
}
⭐️주의⭐️
counter의 변화가 없으면 조건식은 영원히 실행된다. ➪ 무한루프
반복문이 의도치 않게 무한루프에 빠지지 않도록 주의.
(but, 종종 필요에 의해서는 일부러 사용하기도 함)
for문과 함께 많이 쓰이는 반복문.
📍문법
counter 초기상태;
while (조건식){
수행할 동작
(counter 변화)
}
//위의 for문 예제를 while문으로 표현하기
let i = 0;
while(i < 10){
console.log(i+1);
i++
}
🤔 언제 어떤 구문을 써야 해?
- for문 : 주로 반복 횟수가 정해져 있을 때 사용.
- while문 : 주로 무한루프나 특정 조건을 만족할 때까지 반복해야할 때 사용.
📌 <이 외의 다양한 반복문>
MDN_Loops and iteration
let colors = ['red', 'blue', 'orange', 'black'];
for(let i = 0; i < colors.length; i++){
console.log(colors[i]);
}
/*
"red"
"blue"
"orange"
"black"
*/
: 반복문을 대체하는 메서드. 내부에서 반복문을 통해 자신을 호출한 배열을 순회하면서 수행해야할 처리를 콜백 함수로 전달받아 반복 호출한다.
let numbers=[1,2,3];
let powers = numbers.forEach(function (x){
return x*2;
});
console.log(powers);// undefined
undefined
: 자신을 호출한 배열을 순회하면서 수행해야할 처리를 콜백 함수로 전달받아 반복 호출한다.(여기까지는 forEach와 동일)
but, return 값들로 구성된 새로운 배열을 생성한다.
let numbers=[1,2,3];
let powers = numbers.map(function (x){
return x*2;
});
console.log(powers);// [2,4,6]
[2,4,6]
➪ 새로운 배열: 콜백함수의 조건을 충족하는(결과값이 true인) 요소들만 모아서 새로운 배열을 생성한다.
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(x => x.length > 6);
//문자열의 길이가 6보다 큰 요소만 추출하여 새로운 배열 result를 생성.
console.log(result);
// ["exuberant", "destruction", "present"]
["exuberant", "destruction", "present"]
➪ 새로운 배열: 배열의 요소 중에서 하나라도 콜백함수의 조건을 충족하는 요소가 있는지 없는지를 검사한다.
const array = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0;
// 요소들 중 짝수인 요소가 하나라도 있는지 검사
console.log(array.some(even));
// true
true
➪ Boolean: 배열의 모든 요소가 콜백함수의 조건을 충족하는 지 검사한다.
const array = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0;
// 요소들이 모두 짝수인지 검사
console.log(array.every(even));
// false
false
➪ Boolean