배열이란?
순서가 있는 값(element:값)
let myNumber = [73, 98, 86, 61, 96];
element : 배열의 값 ex) 73 98 86 61 96
arr[0] : 대괄호안의 숫자는 배열의 순서로 index값(0)을 넣는다.배열의 값은,로 구분한다.
index:배열의 순서로 0부터 시작된다
length : 배열의 길이
push : 배열에 push함수로 배열끝에 새로운 값 추가
ex) myNumber.push(96); // myNumber = [73, 98, 86, 61, 96, 96];
pop : 배열에 pop함수로 배열끝에 값 삭제
ex) myNumber.pop(); // myNumber = [73, 98, 86, 61, 96,];
let myNumber = [73, 98, 86, 61];
"배열 myNumber의 n번째 인덱스"를 출력하기 -> console.log(myNum[n])
문제 : 반복문을 이용해 배열의 요소(element)를 한번씩 출력하려면?
조건:
-숫자(n)은 0부터 시작한다 -> let n = 0;
-숫자(n)를 배열의 길이보다 작을때까지 반복한다. -> n < myNum.length;
-숫자(n)는 1씩 증가한다. -> n++;
답)
for(let n = 0; n < myNum.length; n++) {
console.log(myNum[n]);
}
문제 : myNum의 모든 element를 누적해서 더하기 위해 필요한 조건과, 반복할 구문은?
let myNum = [10, 20, 40, 10];
let sum = 0; //sum변수를 할당(초기값만들기)하지 않으면 NaN이 나와버림
for(let n = 0; n < myNumber.length; n++){
// sum = 0+10 --> sum + myNum[0]
//sum = 10+20 --> sum + myNum[1]
//sum = 30+40 --> sum + myNum[2]
//sum = 70+10 최종 80 --> sum + myNum[3]
sum = sum + myNum[n];
}
let myNumber = [73, 98, 86, 61, 96];
조회 : myNumber[3]; //61
myNumber[5]; // undefined 발생으로 없는 index이다.
값 변경 : myNumber[3] = 200; -> myNumber; // [73, 98, 86, 200, 96];
2차원 배열 예시>
let myNumber = [[13, 30], [73, 8], [44, 17]];
myNumber[1]; myNumber의 1번째 인덱스 값은? [73, 8]
myNumber[1][0]; myNumber의 1번째 인덱스값의 0번째 인덱스 값은? 73
배열의 길이 구하기
myNumber.length; // 3;
let words = ['피', '땀', '눈물'];
typeof '문자열'// "string"
typeof 123 // "number"
typeof words // "object"
typeof [1,2,3] // "object"
Array.isArray('문자열') //false
Array.isArray(words) //True
Array.isArray([1,2,3]) //true
let arr = ['code','states'];
console.table(arr); // 콘솔에 배열이 테이블 형태로 나타남
//배열 뒤에 추가, 삭제
arr.push('pre') //3이 나오면서 배열 끝에 pre 값 추가
arr.pop() // "pre"가 나오면서 맨 마지막 pre값 삭제
//배열 앞에 추가, 삭제
arr.shift() // "code"가 나오면서 배열 앞 code가 삭제됨
arr.unshift('creative') // 2가 나오면서 배열앞에 creative 추가
기존데이터 보존하면서 수정하여 사용가능.
slice() -> 전체값 출력
slice(0,2) -> 0부터 2값 출력
slice(2) -> 2번째 값 자르기
slice(0,-1) -> 마지막꺼 한개만 삭제하고 나머지 출력
기존데이터 변경되어 사용
ex) arr.splice(1,0)
let arr = [1,2,3,4]
let max = Math.max[...arr]
max; // 4
let arr = ['apple', 'banana']
let value = [
...arr,
'+',
...['apple','banana']
]
value // ['apple','banana','+','apple','banana']
**객체 키와 값 생성
(.)Dot notation - 동적일때
([ ])braket notation - key값이 변수일때 사용(키값이 변할때)
let user = { firstName: 'Steve', lastName: 'Lee', email: 'steve@codestates.com', city: 'Seoul');
user.firstName; // 'Steve' //dot notion
user['firstName']; //'Steve' ->반드시''String형태로 입력해야함. //braket notion
//객체 값 넣기
user['category'] = '잡담';
user.isPublic = true;
user.tags = ['#코드스테이츠', '#프리코스'];
//객체 값 삭제
delete user.firstName;
//in연산자로 해당키가 있는지 확인 가능
'lastName' in user; //true
'middleName' in user; //false
Object.keys(obj) = 객체의 property값을 배열로 만든다
ex) obj = [a,b,c]
Object.keys(obj).length = 객체 값의 길이
const arr = [1,2,3,4,5] // const로 배열 수정, 삭제 가능.
arr.pop() //삭제
arr.push(5) //추가
arr // 배열값 조회
객체속성 추가
obj.hobby = "game"
obj['hobby'] = "game"
obj[hobby] = "game" // hobby가 변수일때
값 조회 2가지 방법
1. obj.str
2. obj[str]
객체 순회하기
for of - array, string 사용 가능
for in - object사용가능
Math.max(숫자)를 넣어서 큰값 출력