배열 : 여러 개의 변수를 한 번에 선언해 다룰 수 있는 자료형
[ 요소, 요소, 요소, …]
const array = [273, 'String', 'true', function() {} , {}, [273, 103] ]
배열 [인덱스]
자바스크립트는 가장 앞에 있는 요소를 0번째로 표현
const num = [273, 52, 103, 32] //undefined
num[0] //273
num[1] //52
num[1+1] //103
num[1*3] //32
배열.length
const fruit = ['배', '사과', '키위', '바나나']
alert(fruit.length) //4
alert(fruit[fruit.length] -1 ) //바나나
push()
: 배열 뒤에 요소 추가배열.push(요소)
const todos = ['serve cvnt', 'eat the stage up', 'be a cvntress']
todos.push('eat shit down')
todos.push('get a bob')
alert(todos)
js에서 배열의 길이는 고정이 아니므로, n개의 요소를 가진 배열에도 강제로 n+10, n+20번째.. 인덱스에 요소를 강제 추가할 수 있음
const fruits = ['사과', '파인애플', '배']
fruits[10] = '귤'
alert(fruits)
splice()
배열.splice(인덱스, 제거할 요소의 개수)
const items = ['사과', '배', '파인애플']
items.splice(2,1) //배열의 2번째 인덱스로부터 1개 요소를 제거 , ['파인애플'] 제거된 요소가 배열로 리턴됨
indexOf()
const 인덱스 = 배열.indexOf(요소)
배열.splice(인덱스, 1)
const items = ['사과', '배', '파인애플']
const index = items.indexOf('배')
items.splice(index,1) //배열의 2번째 인덱스로부터 1개 요소를 제거 , ['바나나'] 제거된 요소가 배열로 리턴됨
indexOf()
: 배열 내부에 찾는 요소가 없을 경우 -1 return
배열.splice(인덱스, 0, 요소)
: 2번째 매개변수에 0을 입력하면 splice() 메소드는 아무 것도 제거하지 않음
const items = ['사과', '배', '파인애플', '오렌지']
items.splice(1,0, '바나나')
alert(items) //사과, 바나나, 배, 파인애플, 오렌지
4, [1,2,3,4,5]
for in | for of | for |
---|---|---|
배열과 함께 사용 | 요소 값을 반복할 때 | 기본 |
for (const 반복 변수 in 배열 혹은 객체){
문장
}
const todos = ['우유 구매', '업무 메일 확인', '필라테스 수업']
for (const i in todos){
console.log(`${i}번째 할 일 : ${todos[i]}`)
}
for (const 반복 변수 of 배열 또는 객체){
문장
}
const todos = ['우유 구매', '업무 메일 확인', '필라테스 수업']
for (const todo of todos){
console.log(`오늘의 할 일 : ${todo}`)
}
for (let i = 0; i < 반복 횟수 ; i++)
문장
}
for (let i = 0; i<5; i++){
console.log(`${i}번째 반복입니다`)
}
let output = 0
for (let i = 1; i<= 100; i++){
output += i
}
console.log(`1~100까지 숫자를 모두 더하면 ${output}입니다`)
const todos = ['우유 구매', '업무 메일 확인', '필라테스 수업']
for (let i = 0; i < todos.length; i++){
console.log(`${i}번째 할 일: ${todos[i]}`)
}
const todos = ['우유 구매', '업무 메일 확인', '필라테스 수업']
for (let i = todos.length -1 ; i >= 0; i--){ //배열의 마지막 요소부터 0까지 하나씩 빼면서 반복
console.log(`${i}번째 할 일: ${todos[i]}`)
}
while (불 표현식){
문장
}
let i = 0
while (true){
alert(`${i}번째 반복임`)
i = i + 1
}
let i = 0
while (confirm('계속 진행할래?')){ //사용자가 확인을 누르면 true 가 되어 반복
alert(`${i}번째 반복임`)
i = i + 1
}
let i = 0
const array = [1,2,3,4,5]
while (i < array.length){
console.log(`${i} : ${array[i]}`)
i++
}
while (true) {
} break
break
활용for (let i = 0; true; i++){
alert(i + '번째 반복문입니다')
//진행 여부 물어보기
const isContinue = confirm('진행할래?')
if (!isContinue){
break
}
}
alert('프로그램 종료')
반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행
for (let i = 0; i<5; i++){
//현재 반복 작업을 중지하고 다음 반복 작업을 수행
continue
alert(i)
}
let output = 0
//반복문
for (let i = 0; i <= 10; i++){
//현재 반복 작업을 중지하고 다음 반복 작업을 수행
continue
alert(i)
}
let output = 0
//반복문
for (let i = 0; i <= 10; i++){
if (i % 2 === 1){
//홀수면 현재 반복을 중지하기
continue;
}
output += 1
}
alert(output)
//변수 선언
let output = ''
//중첩 반복문
for (let i = 1; i < 10; i++){
for (let j = 0; j < i; j++){
output += '*'
}
output += '\n'
}
console.log(output)
//변수 선언
let output = ''
//중첩 반복문
for (let i = 1; i < 15; i++){
for (let j = 15; j > i; j--){
output += ' '
}
for (let m = 0; m < 2 * i - 1; m++){
output += '*'
}
output += '\n'
}
console.log(output)
1
#for in 반복문
0
1
2
3
#for of 반복문
사과
배
귤
바나나
#for of 반복문
2
const가 아니라 변수인 let을 선언해야 한다
3
let output = 1;
for (let i = 1; i < 100; i++){
output *= i;
}
console.log(output)
4
//변수 선언
let output = ''
const size = 5
// 위 절반 프린트
for (let i = 1; i <= size; i++) {
let spaces = '';
let stars = '';
// 간격 만들기
for (let j = 0; j < size - i; j++) {
spaces += ' ';
}
// * 만들기
for (let k = 0; k < 2 * i - 1; k++) {
stars += '*';
}
console.log(spaces + stars);
}
// 바닥 절반 프린트
for (let i = size - 1; i >= 1; i--) {
let spaces = '';
let stars = '';
// 간격 만들기
for (let j = 0; j < size - i; j++) {
spaces += ' ';
}
// * 만들기
for (let k = 0; k < 2 * i - 1; k++) {
stars += '*';
}
console.log(spaces + stars);
}