Array.prototype
const array1 = [5, 12, 8, 130, 44]
const found = array1.find(el => el > 10)
console.log(found)
let fruits = ['Apple', 'Banana', 'Pineapple']
fruits.forEach(elements, index, array) {
console.log(elements, index, array)
}
const b = fruits.map((fruit, i) => ({
id: i,
name: fruit
}))
const numbers = [1, 2, 3, 4]
const fruits = ['Apple', 'Banana', 'Cherry']
const a = fruits.filter(number => number > 3)
const numbers = [1, 2, 3, 4]
const fruits = ['Apple', 'Banana', 'Cherry']
const a = fruits.find(fruit => /^B/.test(fruit))
const numbers = [1, 2, 3, 4]
const fruits = ['Apple', 'Banana', 'Cherry']
const a = fruits.findIndex((fruit => return /^B/.test(fruit))
const numbers = [1, 2, 3, 4]
const fruits = ['Apple', 'Banana', 'Cherry']
const a = numbers.includes(3)
console.log(a) // true
์๋ณธ ์์ ๋จ!
const animals = ['pigs', 'goats', 'sheep']
const count = animals.push('cows')
console.log(count)
// 4
console.log(animals)
// Array ['pigs', 'goats', 'sheep', 'cows']
const arr1 = [1, 2, 3]
console.log(arr1.unshift(4, 5))
// 5
console.log(arr1)
// Array [4, 5, 1, 2, 3]
const numbers = [1, 2, 3, 4]
const fruits = ['Apple', 'Banana', 'Cherry']
numbers.reverse()
fruits.reverse()
์ธ์๊ฐ 2๊ฐ โ .splice(2, 1) : ์ธ๋ฑ์ค ๋ฒํธ 2๋ฒ๋ถํฐ 1๊ฐ์ ๋ฐ์ดํฐ ์ง์
์ธ์๊ฐ 3๊ฐ โ .splice(2, 1, 99) : ์ธ๋ฑ์ค ๋ฒํธ 2๋ฒ๋ถํฐ 1๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ฐ๊ณ 99 ์ถ๊ฐ
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// inserts at index 1
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "June"]
months.splice(4, 1, 'May');
// replaces 1 element at index 4
console.log(months);
// expected output: Array ["Jan", "Feb", "March", "April", "May"]
์ ์ ๋ฉ์๋ โ ๊ฐ์ฒด ํ๋กํ ํ์ ์ ์ด๋ฏธ ๋ฑ๋ก๋์ด ์๋ ํจ์๋ค
- ๋ฆฌํฐ๋ด ๋ฐฉ์์ผ๋ก ๋ฐ๋ก ์ฌ์ฉํ ์ ์์
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const returnedTarget = Object.assign(target, source);
console.log(target);
// expected output: Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget);
// expected output: Object { a: 1, b: 4, c: 5 }
const userAge = {
name: 'zerone',
age: 85
}
const userEmail = {
name: 'zerone'
email: 'kc9994@naver.com'
}
const target = Object.assign({}, userAge, userEmail)
console.log(target === userAge) //flase
let a, b, rest;
[a, b] = [10, 20];
console.log(a);
// expected output: 10
console.log(b);
// expected output: 20
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(rest);
// expected output: Array [30,40,50]
const fruits = ['Apple', 'Banana', 'Cherry']
const [ , , c] = fruits
// output: Cherry
const user = {
name: 'zerone',
age: 98.
email: kc9994@naver.com
}
const {name, age: ๋์ด, address='korea', email} = user
// age๋ฅผ ๋์ด๋ผ๋ ๋ณ์๋ก ํ์ฉํ ์ ์์
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers));
// expected output: 6
const fruits = ['Apple', 'Banana', 'Cherry', 'Orange']
function toObject(a, b, ...c) {
return {
a: a,
b: b,
c: c
}
}
console.log(toObject(...fruits)) // c ์๋ Cherry์ Orange๊ฐ ๋ชจ๋ ๋ด๊ฒจ์์
// ์ถ์ฝํ์ผ๋ก ์์ฑ๊ฐ๋ฅ
const toObject = (a, b, ...c) => ({a, b, c})
์์ํ ๋ฐ์ดํฐ๋ ๋ถ๋ณ์ฑ์ ๊ฐ์ง
let a = 1 // ์ฒซ ๋ฒ์งธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ 1์ด ํ ๋น
let b = 4 // ๋ ๋ฒ์งธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ 4๊ฐ ํ ๋น
console.log(a, b, a === b)
// 1 4 false
b = a // b๊ฐ ์ฐธ์กฐํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ a๊ฐ ์ฐธ์กฐํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๋ณ๊ฒฝ
console.log(a, b, a === b)
// 1 1 true
a = 7 // ์ธ ๋ฒ์งธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ 7์ด ํ ๋น
console.log(a, b, a === b)
// 7 1 false
let c = 1 // ์ฒซ ๋ฒ์งธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐ(๋ค ๋ฒ์งธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ 1์ ํ ๋นํ๋ ๊ฒ์ด ์๋)
console.log(b, c, b === c)
// 1 1 true
์ฐธ์กฐํ ๋ฐ์ดํฐ๋ ๊ฐ๋ณ์ฑ์ ๊ฐ์ง(๋ถ๋ณ์ฑX?)
โ ์๊ธด ๊ฒ์ด ๋๊ฐ์๋ ์๋ก ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ ์ ์๋ค
let a = {k: 1}
let b = {k: 1}
console.log(a, b, a === b)
// {k: 1} {k: 1} flase
a.k = 7
b = a
console.log(a, b, a === b)
// {k: 7} {k: 7} true
a.k = 2
console.log(a, b, a === b)
// {k: 2} {k: 2} true
let c = b // b ์ ๊ฐ์ด c ๋ก ๋ณต์ฌ๋๋ ๊ฒ์ด ์๋, ๊ฐ์ ์ฃผ์๋ฅผ ์ฐธ์กฐํ๋ค๋ ๊ฒ!
console.log(a, b, c, a === c)
/// {k: 2} {k: 2} {k: 2} true
a.k = 9
console.log(a, b, c, a === c)
// {k: 9} {k: 9} {k: 9} true
// a ์ k ๊ฐ๋ง ๋ฐ๊ฟจ๋๋ฐ b, c ๋ํ a ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ด ๋ฐ๋
1. Object.assgin()
const user = {
name: 'zerone',
age: 98,
emails: 'kc9994@naver.com'
}
**const copyUser = Object.assing({}, user)**
console.log(copyUser === user)
// false
user.age = 25
console.log('user', user)
// {name: 'zerone', age: 25, emails: 'kc9994@naver.com'}
console.log('copyUser', copyUser)
// {name: 'zerone', age: 98, emails: 'kc9994@naver.com'}
2. ์ ๊ฐ ์ฐ์ฐ์
const user = {
name: 'zerone',
age: 98,
emails: 'kc9994@naver.com'
}
**const copyUser = {...user}**
console.log(copyUser === user)
// false
user.age = 25
console.log('user', user)
// {name: 'zerone', age: 25, emails: 'kc9994@naver.com'}
console.log('copyUser', copyUser)
// {name: 'zerone', age: 98, emails: 'kc9994@naver.com'}
1. Lodash
import _ from 'lodash' // ์ธ๋๋ฐ(_) ๊ธฐํธ๊ฐ ํ๋์ ๊ฐ์ฒด ๋ฐ์ดํฐ
const user = {
name: 'zerone',
age: 98,
emails: ['kc9994@naver.com']
}
const copyUser = _.cloneDeep(user)
console.log(copyUser === user)
// false
user.age = 25
// console.log('user', user)
// console.log('copyUser', copyUser)
user.emails.push('cham9994@gmail.com')
console.log('user', user)
// {name: 'zerone', age: 25, emails: Array(2)}
console.log('copyUser', copyUser)
// {name: 'zerone', age: 98, emails: Array(1)}