JavaScript-객체

hannah·2023년 7월 23일
0

JavaScript

목록 보기
21/121

객체(object)

자료형의 일종으로 다양한 값을 모아둔 또다른 값
객체의 종류는 크게 배열(array), 함수(function), 배열이나 함수가 아닌 객체로 나눌 수 있음

const fruits=['사과', '오렌지', '배', '딸기']
console.log(fruits[0]);
console.log(fruits[1]);
console.log(fruits[2]);
console.log(fruits[3]);

현재 배열 안에 있는 값은 모두 문자열이지만, 값의 자료형이 모두 같아야 할 필요는 없음
배열 안에 다른 배열이나 변수를 넣을 수도 있음

const arrayOfArray=[[1,2,3],[4,5]];
arrayOfArrya[0];	//[1,2,3]

const a = 10;
const b = 20;
const variableArray=[a,b,30];
variableArray[1];	//20(b의 값)

arrayOfArray[0]을 하면 [1,2,3] 값이 나오는데 이러한 배열을 이차원 배열이라고 함

const everything = ['사과',1,undefined, true, '배열', null];
const duplicated = ['가','가','가','가','가'];
const empty = [];

배열 내부에 든 값을 요소(elements)라고 함

배열의 요소 개수 구하기

.length를 이용

const emptyValue = [null, undefined, false, '', NaN];
console.log(emptyValue.length);		//5

마지막 요소의 값 찾기

const findLastElement = ['a','b','c','d','e'];
console.log(findLastElement[findLastElement.length-1]);		//e

문제
arr라는 배열이 있을 때 배열의 마지막에서 세 번째 요소를 찾아보기










정답

const arr = ['강','양','군','멋','져'];
console.log=(arr[arr.length-3]);

배열 마지막에 요소를 추가하기

const target = ['a','b','c','d','e'];
target[5] ='f';
console.log=(target);

배열의 길이가 가변적일 경우, 아래와 같은 방법으로 마지막에 요소를 추가할 수 있음

const target = ['a','b','c','d','e'];
target[target.length] ='f';
console.log=(target)

배열의 마지막에 요소를 추가하는 또다른 방법으로는 push를 이용할 수 있음

const ex = ['가','나','다','라','마'];
ex.push('바');
console.log=(ex);

배열의 제일 앞에 값을 추가하고 싶은 경우, unshift 사용

const letter = ['나','다','라','마','바'];
letter.unshift('가');
console.log=(letter);

const인데 수정 가능한 이유는?
const에는 새로운 값을 대입(=)하는 것만 못하는 것이고, 객체(배열, 함수, 객체 리터럴)에 대입된 경우 객체 내부의 속성이나 배열의 요소는 수정이 가능함

배열에서 요소 수정하기

수정을 원하는 인덱스에 바꿀 값을 넣어주면 됨

배열에서 요소 제거하기

마지막 요소 제거

const ex = ['가','나','다','라','마','바'];
ex.pop();
console.log=(ex);

첫번째 요소 제거

const letter = ['가','나','다','라','마','바'];
letter.shift();
console.log=(letter);

중간 요소 제거

const letter = ['가','나','다','라','마','바'];
letter.splice(1,3);		//두 번째 요소 이후부 세개를 지움
console.log=(letter);		//가, 마, 바
const letter = ['가','나','다','라','마','바'];
letter.splice(1,3,'타', '파');		//두 번째 요소 이후부 세개를 지우고 그 자리에 타, 파를 넣음
console.log=(letter);		//가, 타, 파, 마, 바
const letter = ['가','나','다','라','마','바'];
letter.splice(4);		//네 번쨰 요소부터 뒤에를 다 지움
console.log=(letter);		//가, 나, 다, 라

중간에 요소를 추가하고 싶은 경우

const letter = ['가','나','다','라','마'];
letter.splice(1,0,'바',);		//넣고 싶은 곳의 인덱스를 넣고, 요소 추가
console.log=(letter);		//가, 바, 나, 다, 라, 마

배열에서 요소 찾기

일종의 검색 기능인 includes

const array = ['가','나','다','라','마'];
const result1 = array.includes('다');
const result2 = array.includes('카');
console.log(result1);		//true
console.log(result2);		//false

검색하고 싶은 값이 몇 번째 인덱스에 위치해 있는지 찾기

indexOf와 lastIndexOf 기능을 사용

const array = ['라','나','다','라','다'];
const result1 = array.indexOf('다');
const result2 = array.lastIndexOf('라');
const result3 = array.indexOf('가');
console.log(result1);		//2
console.log(result2);		//3
console.log(result3);		//-1, 요소에 없는 경우 값이 -1이 나옴

배열 반복하기

while문

const target = ['가','나','다','라','마'];
let i=0;
while(i<target.length) {
	console.log(target[i]);
    i++;
}		//가,나,다,라,마

for문

const target = ['가','나','다','라','마'];
for (let i=0; i<target.length; i++) {
	console.log(target[i]);
}		//가,나,다,라,마

문제
다음 배열에서 '라'를 모두 제거하기(indexOf와 splice를 사용)

const arr = ['가','라','다','라','마','라'];











정답

while (arr.indexOf('라') > -1) {
	arr.splice(arr.indexOf('라'),1)
}

문제에서 '모두'라는 말이 나오면 반복문을 사용해야 할 가능성이 높음

중복되는 문구를 지우면 아래처럼 정리할 수 있음

let index = arr.indexOf('라');
while (index > -1) {
	arr.splice(index,1)
    index = arr.indexOf('라');
}

0개의 댓글