let myDog = {
name : "해피",
age : "1"
}
function Dog(name, age) {
this.name = name;
this.age = age;
}
let myDog = new Dog("해피", 1);
let yourDog = new Dog("까미", 1);
객체.키
myDog.name //해피
.keys
let keys = Object.keys(myDog) //['name', 'age']
.values
let values = Object.values(myDog) //['해피', 1]
.entries
let entries = Object.entries(myDog) //[['name','해피'],['age',1]]
.assign
let newDog = {}
Object.assign(newDog, myDog, {name: "까미"})
비교
//객체는 안의 값이 동일해도 다른 개체 (== 써도 마찬가지)
console.log(yourDog === newDog) //false
//문자열화시키면 값만 비교 가능
console.log(JSON.stringify(yourDog) === JSON.stringify(newDog)) //true
병합
... : spread operator
let name = { name: '해피' }
let age = { age: 1 }
let perfectDog = {...name, ...age}
console.log(JSON.stringify(myDog) === JSON.stringify(perfectDog)) //true
//기본 생성
let fruits = ['apple', 'grape', 'orange']
//크기만 지정
let vegetables = new Array(3)
fruits[0] //apple
마지막 요소 추가/삭제
fruits.push('banana')
fruits.pop()
첫 요소 추가/삭제
fruits.unshift('banana')
fruits.shift()
지정 삭제 및 대체
fruits.splice(1, 1, 'banana') //index 1번부터 1번까지 삭제 후 'banana' 삽입
console.log(fruits) //['apple', 'banana', 'orange']
잘라서 저장
let slicedFruits = fruits.slice(1, 2) //index 1번부터 2번 전까지(1번만)
console.log(slicedFruits) //['banana']
console.log(fruits) //['apple', 'banana', 'orange'] 원본은 그대로
foreach
//콜백함수: 매개변수 자리에 함수를 넣는 것
//배열 안의 모든 item에 대해 로직을 수행
fruits.foreach(function(item){
console.log("I like",item)
})
map
//가공을 통해 새로운 배열을 생산
let freshFruits = fruits.map(function(item){
return "fresh " + item
})
console.log(freshFruits)
//[ 'fresh apple', 'fresh banana', 'fresh orange' ]
//원본 배열 길이만큼의 return이 있음(return이 없어도 length가 같은 빈 배열 생성)
filter
//return 뒤 조건에 맞는 값만 모아 배열로 반환
let redFruits = fruits.filter(function(item){
return item == 'apple'
})
console.log(redFruits) //['apple']
find
//조건에 맞는 첫번째 값을 반환
let longFruit = fruits.find(function(item){
return item.length > 5;
})
console.log(longFruit) //banana (배열 형태가 아님)