Array Cardio Day 2
๊ธฐ๋ณธ ์ฝ๋
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Array Cardio ๐ช๐ช</title>
</head>
<body>
<p><em>Psst: have a look at the JavaScript Console</em> ๐</p>
<script>
// ## Array Cardio Day 2
const people = [
{ name: 'Wes', year: 1988 },
{ name: 'Kait', year: 1986 },
{ name: 'Irv', year: 1970 },
{ name: 'Lux', year: 2015 }
];
const comments = [
{ text: 'Love this!', id: 523423 },
{ text: 'Super good', id: 823423 },
{ text: 'You are the best', id: 2039842 },
{ text: 'Ramen is my fav food ever', id: 123523 },
{ text: 'Nice Nice Nice!', id: 542328 }
];
// Array.prototype.find()
// Find is like filter, but instead returns just the one you are looking for
// find the comment with the ID of 823423
// Array.prototype.findIndex()
// Find the comment with this ID
// delete the comment with the ID of 823423
</script>
</body>
</html>
๋ชฉํ
Array Cardio Day1์ ์ด์ด ๊ฐ์ข ์๋ฐ์คํฌ๋ฆฝํธ ๋ฉ์๋๋ฅผ ์ตํ๋ด
๊ณผ์
- some()
- every()
- find()
- findIndex(), slice()
์ฝ๋ ๋ถ์
1. some()
// Array.prototype.some() // is at least one person 19 or older?
const isAdult = people.some(person => ((new Date()).getFullYear()) - person.year >= 19);
console.log({ isAdult });
๊ธฐ๋ณธ ์ฝ๋์์ ์ ์ธํ people
์ 19์ด ์ด์์ด ํ๋ช
์ด์ ์๋์ง ์์๋ณด๊ธฐ ์ํ ์ฝ๋๋ฅผ ์์ฑsome()
์ ์์ ๋ฐฐ์ด์ ๋ด์ฉ ์ค ์กฐ๊ฑด์ ๋ง๋๊ฒ์ด ์๋ค๋ฉด true ์๋ค๋ฉด false๋ฅผ ๋ฐํํ๋ ๋ฉ์๋.
๊ดํธ ์์ ๋ด์ฉ์ ํ์ฌ ์๊ฐ์์ ๋ค์๋ฆฌ๋ก ํ์ฌ ์ฐ๋๋ฅผ ์ป์ด ๋ธ ๋ค ํ์ด๋ ๋
๋๋ฅผ ๋บ์ ๋ 19 ์ด์์ด ์๋์ง
ํ์ธํ๋ ์ฝ๋, ์ฝ์์ ํตํด ๊ฒฐ๊ณผ ํ์ธ
2. every()
// Array.prototype.every() // is everyone 19?
const allAdults = people.every(person => ((new Date()).getFullYear()) - person.year >= 19);
console.log({ allAdults });
๊ธฐ๋ณธ ์ฝ๋์์ ์ ์ธํ people์ ๋ชจ๋ 19์ด ์ด์์ธ์ง ์์๋ณด๊ธฐ ์ํ ์ฝ๋๋ฅผ ์์ฑ
every()๋ ์์ ๋ฐฐ์ด์ ๋ด์ฉ์ด ๋ชจ๋ ์กฐ๊ฑด์ ๋ง๋ค๋ฉด true ์๋ค๋ฉด false๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
๊ดํธ ์์ ๋ด์ฉ์ ์์ ๋์ผ, ์ฝ์์ ํตํด ๊ฒฐ๊ณผ ํ์ธ
3. find()
// Array.prototype.find()
// Find is like filter, but instead returns just the one you are looking for
// find the comment with the ID of 823423
const comment = comments.find(comment => comment.id === 823423);
console.log(comment);
๊ธฐ๋ณธ ์ฝ๋์์ ์ ์ธํ comment์์ ID๊ฐ 823423์ธ ๊ฐ์ด ์๋์ง ์ฐพ๊ธฐ ์ํด ์ฌ์ฉ
๋ถ์ฐ์ค๋ช
์ด ์์ด ์ฝ๋ ์์ฒด๋ก ์ดํด๊ฐ ๊ฐ๋ฅ, ์ฝ์์ฐฝ์ ๊ฒฐ๊ณผ ์ถ๋ ฅ
4. findIndex(), slice()
// Array.prototype.findIndex()
// Find the comment with this ID
// delete the comment with the ID of 823423
const index = comments.findIndex(comment => comment.id === 823423);
console.log(index);
// comments.splice(index, 1);
const newComments = [
...comments.slice(0, index),
...comments.slice(index + 1)
];
console.log(newComments);
๊ธฐ๋ณธ ์ฝ๋์์ ์ ์ธํ comment
์์ ID๊ฐ 823423์ธ ๊ฐ์ ์ฐพ์ index๋ฅผ ๋ฐํํ ๋ ์ฌ์ฉ
๋ฐฐ์ด์์ ...
์ ์ฌ์ฉํด ์๋ก์ด ๋ฐฐ์ด newComments
์์ id๊ฐ 823423์ธ ๊ฐ์ ๋บ ๋๋จธ์ง๋ฅผ ๋ฃ์
์ฃผ์๊ณผ ์๋์ ์ฝ๋๊ฐ ๋์ผํ๋ฉฐ slice()
์ splice()
์ ์ฐจ์ด๋ ์๋์ ์ ์ด๋์์
์ฐพ์๋ณธ ๋ด์ฉ, ์๊ฒ๋ ๋ด์ฉ๋ค
findIndex()
- ์ผ์นํ๋ ๊ฐ์ ์์ธ์ ๋ฐํํ ๋ ์ฌ์ฉ