스파르타 코딩강의 : JavaScript 문법 종합반 1주차 - 객체와 배열
✨ 이번 글에서 사용할 주요 기능
- 객체와 배열의 개념 알기
- 객체와 배열의 요소에 접근하는 방법 알아보기
- 객체와 배열에서 활용할 수 있는 메소드 알아보기
배열
- 변수를 차례대로 저장하는 자료 구조
- 배열을 선언할 때에는 []를 사용
- 배열을 선언할 때 배열에 들어있는 값을 지정할 수도 있고, 배열의 크기만 지정하여 생성할 수도 있다.
- 배열의 요소를 접근할 때에는 인덱스를 사용한다.
- 배열의 인덱스는 0부터 시작하는 것에 유의하자.
- 배열이 제공하는 메소드
- push() : 배열에 맨 끝에 요소 추가하기
- pop() : 배열의 마지막 요소 삭제하기
- shift() : 배열의 첫번째 요소 삭제하기
- unshift() : 배열의 첫번째 자리에 요소 추가하기
- splice() : 위치를 지정하여 해당 자리에 배열의 요소를 대신 넣기
- slice() : 배열의 인덱스 범위를 지정하여 반환하기
- forEach() : 배열의 요소 중 for문을 도는 것이라고 생각하기
- map() : 기존의 배열을 새로운 배열로 만들어 리턴해주기
- filter() : 조건에 부합하는 배열의 요소값을 리턴해주기
- find() : 배열의 요소 중 조건을 만족하는 첫 번째 요소를 반환하기
배열 활용하기
let fruits = ["사과", "바나나", "오렌지"]
let number = new Array(5)
console.log(number)
console.log(number.length)
console.log(fruits.length)
console.log(fruits[0])
console.log(fruits[1])
fruits.push("키위")
console.log(fruits)
fruits.pop()
console.log(fruits)
fruits.shift()
console.log(fruits)
fruits.unshift("포도")
console.log(fruits)
fruits.splice(1, 1, "포도")
console.log(fruits)
let slicedFruits = fruits.slice(1,2)
console.log(slicedFruits)
let numbers = [1, 2, 3, 4, 5]
numbers.forEach(function(item){
console.log('item입니다 : ' + item)
item = item+1
})
let newNumbers = numbers.map(function(item){
return item*2
})
console.log(newNumbers)
let filteredNumbers = numbers.filter(function(item){
return item <=4
})
console.log(filteredNumbers)
let result = numbers.find(function(item){
return item >= 3
})
console.log(result)
객체
- 하나의 변수에 여러 개의 속성을 저장하여 관리할 수 있는 자료구조
- 기본 형태 : 변수 이름 = {속성 : 속성값}
- 생성자 함수를 이용하여 객체를 생성할 수 있다.
- 객체의 요소에 접근할 때에는 "객체 이름.속성"을 이용한다.
- 객체가 제공하는 메소드
- Object.keys() : key를 가져오기
- Object.values() : value 가져오기
- Object.entries() : keys와 values를 묶어서 배열로 가져오기 (2차원 배열)
- Object.assign() : 객체를 복사한다
- 객체 비교 : 객체의 속성값이 다르면 === 연산자로 비교할 경우 false 반환함 -> 객체를 저장하는 주소가 다르기 때문
- JSON.stringify : 문자열화하여 비교하면 속성이 같은 두 객체를 비교했을 때 true 반환
- 객체 병합 : ... : spread operator 이용하기
객체 활용하기
let person = {
age : 24,
name : "김정원"
};
function Person(name, age, gender){
this.name = name;
this.age = age;
this.gender = gender;
}
let person1 = new Person("홍길동", 30, "남자")
let person2 = new Person("홍길순", 30, "여자")
console.log(person1.name)
console.log(person.age)
let keys = Object.keys(person);
console.log(keys)
let values = Object.values(person);
console.log(values)
let entries = Object.entries(person);
console.log(entries)
let newPerson = {};
let newPerson2 = {};
Object.assign(newPerson, person);
console.log("newPerson : ", newPerson)
Object.assign(newPerson2, person, {gender:"남자"})
console.log("newPerson2 : ", newPerson2)
let person3 = {
name : "홍길동",
age : "30"
}
let person4 = {
gender : "남자"
}
let perfectMan = {
...person3, ...person4
}
console.log(perfectMan)