2-1.배열, 객체

Blackwidow·2020년 11월 2일
1
post-thumbnail

변수의 2가지 타입(객체, 배열)

배열 기초

배열이란?
순서가 있는 값(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() -> 전체값 출력
slice(0,2) -> 0부터 2값 출력
slice(2) -> 2번째 값 자르기
slice(0,-1) -> 마지막꺼 한개만 삭제하고 나머지 출력

splice

기존데이터 변경되어 사용
ex) arr.splice(1,0)

...arr

  1. 정수, 문자, 변수등을 배열요소로 펼쳐주는 문법사용
    사용방법(함수안에서 parameter 변수로 사용될때)
    ...변수명 = [10, 20, 30];으로 출력
  1. 그 외에는 배열안에 값을 벗겨서 펼쳐준다.
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 = 객체 값의 길이 

key, property(속성)의 차이점

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()

Math.max(숫자)를 넣어서 큰값 출력

profile
javascript 공부하는 sumiindaeyo

0개의 댓글