๐จ ํจ์คํธ์บ ํผ์ค/๊ณต๋ถ ๊ธฐ๋ก
[221031] JS : ํ์ค๋ด์ฅ๊ฐ์ฒด 2
Jane K
2022. 11. 17. 01:27
1. ๋ฐฐ์ด
- length : ๋ฐฐ์ด์ ๊ธธ์ด(์ซ์)๋ฅผ ๋ฐํ
- at : ๋์ ๋ฐฐ์ด์ ์ธ๋ฑ์ฑ. ์์ ๊ฐ์ ์ฌ์ฉํ๋ฉด ๋ค์์๋ถํฐ ์ธ๋ฑ์ฑ ๋ง์ง๋ง ์์ดํ ์ ์กฐํํ ๋๋ arr[arr.length-1] ์ ์ฐ๋๋ฐ at ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด arr.at(-1) ๋ก ๊ฐ๋จํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
- concat : ๋์ ๋ฐฐ์ด๊ณผ ์ฃผ์ด์ง ๋ฐฐ์ด์ ๋ณํฉํด ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ. ๋๊ฐ์ ๋ฐฐ์ด ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ๋ ์ฉ๋. arr1.concat(arr2) ์ ๊ฐ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด๋ ๋๊ฐ์ → […arr1, …arr2]
- every : ๋์ ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ์ฝ๋ฐฑ ํ ์คํธ๋ฅผ ํต๊ณผ(์ฐธ์ ๋ฐํ)ํ๋์ง ํ์ธ. arr.every(item => item < 5) → ๋ฐฐ์ด์ ๋ชจ๋ ์์ดํ ๋ค์ด ํด๋นํ๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ํต๊ณผํ๋์ง ํ์ธ, ํต๊ณผํ์ง ๋ชปํ๋ฉด false ๋ฐํ
- filter : ๋์ ๋ฐฐ์ด์์ ์ฝ๋ฐฑ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ชจ๋ ์์๋ก ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด ๋ฐํ. ๋ง์ฝ ๋ชจ๋ ์์๊ฐ ํ ์คํธ๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ฉด ๋น ๋ฐฐ์ด์ ๋ฐํ.
const users = [
{ name: "Neo", age: 85 },
{ name: "Amy", age: 22 },
{ name: "Lewis", age: 11 },
];
const adults = users.filter((user) => user.age >= 19);
console.log(adults); // [ Neo๊ฐ์ฒด, Amy๊ฐ์ฒด ]
- find : ๋์ ๋ฐฐ์ด์์ ์ฝ๋ฐฑ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํ. ์ต์ด๋ก ํ ์คํธ๊ฐ ํต๊ณผํ๋ฉด, ์ดํ ์ฝ๋ฐฑ์ ์คํ ์๋จ. ๋ชจ๋ ํ ์คํธ๊ฐ ์คํจํ๋ฉด, undefined๋ฅผ ๋ฐํ.
- findIndex : ๋์ ๋ฐฐ์ด์์ ์ฝ๋ฐฑ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ์ฒซ ๋ฒ์งธ ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ. ์ต์ด๋ก ํ ์คํธ๊ฐ ํต๊ณผํ๋ฉด, ์ดํ ์ฝ๋ฐฑ์ ์คํ ์๋จ. ๋ชจ๋ ํ ์คํธ๊ฐ ์คํจํ๋ฉด, -1์ ๋ฐํ.
- flat : ๋์ ๋ฐฐ์ด์ ๋ชจ๋ ํ์ ๋ฐฐ์ด์ ์ง์ ํ ๊น์ด(Depth)๊น์ง ์ด์ด๋ถ์ธ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ. ๊น์ด์ ๊ธฐ๋ณธ๊ฐ์ 1.
const arr = [1, 2, [3, 4, [5, 6, [7, 8]]]];
console.log(arr.flat()); // [1, 2, 3, 4, [5, 6, [7, 8]]]
console.log(arr.flat(2)); // [1, 2, 3, 4, 5, 6, [7, 8]]
console.log(arr.flat(Infinity)); // [1, 2, 3, 4, 5, 6, 7, 8]
- forEach : ๋์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ์ฃผ์ด์ง ์ฝ๋ฐฑ์ ์คํ. for ๋ฐ๋ณต๋ฌธ๊ณผ ๋์ผํ์ง๋ง foreach ๊ฐ ๋ ๊น๋. ํ์ง๋ง forEach๋ ์ค๊ฐ์ ๋ฐ๋ณต์ ๋ฉ์ถ ์ ์์.๋ฐ๋ณต์ ๋ฉ์ถ ์ ์์ด์ผ ํ๋ค๋ฉด, for ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉ.
- includes : ๋์ ๋ฐฐ์ด์ด ํน์ ์์๋ฅผ ํฌํจํ๊ณ ์๋์ง ํ์ธ. ์์ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ์ฉ๋๋ก ์ฌ์ฉํจ. ์ฐธ์กฐํ ๋ฐ์ดํฐ๋ ๋ณต์ฌ๋ฅผ ํด์ ์ฌ์ฉํ๊ฑฐ๋ find ๋ฉ์๋๋ฅผ ์ฌ์ฉ.
const users = [
{ name: 'Neo', age: 85 },
{ name: 'Amy', age: 22 },
{ name: 'Lewis', age: 11 }
]
console.log(users.includes({ name: 'Neo', age: 85 })) // false
const neo = users[0]
console.log(users.includes(neo)) // true
- join : ๋์ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ๊ตฌ๋ถ์๋ก ์ฐ๊ฒฐํ ๋ฌธ์๋ฅผ ๋ฐํ.
- map : ๋์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ์ฃผ์ด์ง ์ฝ๋ฐฑ์ ์คํํ๊ณ , ์ฝ๋ฐฑ์ ๋ฐํ ๊ฐ์ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ.
const users = [
{ name: 'Neo', age: 85 },
{ name: 'Amy', age: 22 },
{ name: 'Lewis', age: 11 }
]
const newUsers = users.map(user => ({
...user,
isValid: true,
email: null
}))
console.log(newUsers)
- pop : ๋์ ๋ฐฐ์ด์์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๊ทธ ์์๋ฅผ ๋ฐํ. ๋์ ๋ฐฐ์ด ์๋ณธ์ด ๋ณ๊ฒฝ.
- shift : ๋์ ๋ฐฐ์ด์์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ๊ณ , ์ ๊ฑฐ๋ ์์๋ฅผ ๋ฐํ. ๋์ ๋ฐฐ์ด ์๋ณธ์ด ๋ณ๊ฒฝ.
- push : ๋์ ๋ฐฐ์ด์ ๋ง์ง๋ง์ ํ๋ ์ด์์ ์์๋ฅผ ์ถ๊ฐ, ๋ฐฐ์ด์ ์๋ก์ด ๊ธธ์ด๋ฅผ ๋ฐํ. ๋์ ๋ฐฐ์ด ์๋ณธ์ด ๋ณ๊ฒฝ.
const fruits = ['Apple', 'Banana', 'Cherry']
const newLength = fruits.push('Orange')
console.log(newLength) // 4
console.log(fruits) // ['Apple', 'Banana', 'Cherry', 'Orange']
- unshift : ์๋ก์ด ์์๋ฅผ ๋์ ๋ฐฐ์ด์ ๋งจ ์์ ์ถ๊ฐํ๊ณ ์๋ก์ด ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๋ฐํ. ๋์ ๋ฐฐ์ด ์๋ณธ์ด ๋ณ๊ฒฝ.
- reduce : ๋์ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ์ฃผ์ด์ง ์ฝ๋ฐฑ์ ์คํ, ๋ง์ง๋ง์ ํธ์ถ๋๋ ์ฝ๋ฐฑ์ ๋ฐํ ๊ฐ์ ๋ฐํ. ๊ฐ ์ฝ๋ฐฑ์ ๋ฐํ ๊ฐ์ ๋ค์ ์ฝ๋ฐฑ์ผ๋ก ์ ๋ฌ. ๋ฐํ๊ฐ์ด accumulator ๋ก ์ ๋ฌ๋๋ค๋ ๋ง. ์์ดํ ์ ๊ฐ์๋งํผ ์คํ.
const numbers = [1, 2, 3]
// const result = numbers.reduce((acc, cur) => acc + cur, 0)
const result = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue
}, 0)
console.log(result) // 6
→ ๋์ ๊ฐ + ๋ฐ๋ณต๊ฐ => 0+1 ~> 1+2 ~> 2+3 ~> 3+3 = 6
// ๋ชจ๋ ์ด๋ฆ ์ถ์ถ
const names = users
.reduce((acc, cur) => {
acc.push(cur.name)
return acc
}, [])
.join(', ')
console.log(names) // 'Neo, Amy, Lewis'
→ ์ด๊ธฐ๊ฐ์ด ๋ฐฐ์ด๋ก ๋์ด์๋ ๋์ ๊ฐ์ name ์ด๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ ๋์ ๊ฐ์ ๋ฐํํ๊ณ ๋ฌธ์์ด๋ก ๋ง๋ค์ด์ค
- reverse : ๋์ ๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ์ . ๋์ ๋ฐฐ์ด ์๋ณธ์ด ๋ณ๊ฒฝ.
- slice : ๋์ ๋ฐฐ์ด์ ์ผ๋ถ๋ฅผ ์ถ์ถํด ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ. ๋ ๋ฒ์งธ ์ธ์ ์ง์ ๊น์ง ์ถ์ถํ๊ณ , ๋ ๋ฒ์งธ ์ธ์๋ฅผ ์๋ตํ๋ฉด ๋์ ๋ฐฐ์ด์ ๋๊น์ง ์ถ์ถ.
- some : ๋์ ๋ฐฐ์ด์ ์ด๋ค ์์๋ผ๋ ์ฝ๋ฐฑ ํ ์คํธ๋ฅผ ํต๊ณผํ๋์ง ํ์ธ. every ๋ฉ์๋๋ ๋ชจ๋ ํต๊ณผํ๋์ง ํ์ธํ๋๋ฐ some ๋ฉ์๋๋ ํ๋๋ผ๋ ํต๊ณผํ๋์ง ํ์ธ.
- sort : ๋์ ๋ฐฐ์ด์ ์ฝ๋ฐฑ์ ๋ฐํ ๊ฐ์ ๋ฐ๋ผ ์ ๋ ฌ. ์ฝ๋ฐฑ์ ์ ๊ณตํ์ง ์์ผ๋ฉด, ์์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ ์์๋ก ์ ๋ ฌ. ๋์ ๋ฐฐ์ด ์๋ณธ์ด ๋ณ๊ฒฝ.
- ์์: a๋ฅผ ๋ฎ์ ์์๋ก ์ ๋ ฌ
- 0: ์์ ๋ณ๊ฒฝ ์์
- ์์: b๋ฅผ ๋ฎ์ ์์๋ก ์ ๋ ฌ
const numbers = [4, 17, 2, 103, 3, 1, 0]
numbers.sort()
console.log(numbers) // [0, 1, 103, 17, 2, 3, 4] → ๋ฌธ์์ด๋ก ๋ณ๊ฒฝํด์ ์์๋ฆฌ๋ง ์ธ์ํด์ ์ฌ๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
numbers.sort((a, b) => a - b)
console.log(numbers) // [0, 1, 2, 3, 4, 17, 103]
numbers.sort((a, b) => b - a)
console.log(numbers) // [103, 17, 4, 3, 2, 1, 0]