โ study keyword
๋ฐฐ์ด์ ๋ฉ์๋ 5๊ฐ์ง์ ์ฌ์ฉ๋ฐฉ๋ฒ์ ์์๋ณด์!
๊ฒฐ๊ณผ๋ฌผ์ ๋ฐํํ๋ ๋ ๊ฐ์ง ํจํด
1> ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ๋ ๋ฉ์๋
2> ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ์ฌ ๋ฐํํ๋ ๋ฉ์๋
slice ๋ฉ์๋ ์ธ์๋ก ์ ๋ฌ๋ ๋ฒ์์ ์์๋ค์ ๋ณต์ฌํ์ฌ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค. ์ด๋ ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๋๋ค.
slice(start[, end])
start
๋ณต์ฌ๋ฅผ ์์ํ ์ธ๋ฑ์ค.
end
๋ณต์ฌ๋ฅผ ์ข
๋ฃํ ์ธ๋ฑ์ค. ์ด๋, end index์ ์ง์ ๊น์ง์ ์์๋ง ์ถ์ถ๋๋ค.
<script> const arr = [1, 2, 3] // arr[0]๋ถํฐ arr[1] ์ง์ ๊น์ง ๋ณต์ฌํ์ฌ ๋ฐํ arr.slice(0, 1) // [1] // arr[1]๋ถํฐ arr[2] ์ง์ ๊น์ง ๋ณต์ฌํ์ฌ ๋ฐํ arr.slice(1, 2) // [2] // ์๋ณธ์ ๋ณ๊ฒฝ๋์ง ์์ console.log(arr); // [1, 2, 3] </script>
์ฒซ ๋ฒ์งธ ์ธ์(start)๋ก ์ ๋ฌ ๋ฐ์ ์ธ๋ฑ์ค๋ถํฐ ๋ ๋ฒ์งธ ์ธ์(end)๋ก ์ ๋ฌ ๋ฐ์ ์ธ๋ฑ์ค ์ง์ ๊น์ง ์์๋ค์ ๋ณต์ฌํด ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
<script> const arr = [1, 2, 3] // arr[1] ๋ถํฐ ์ดํ์ ๋ชจ๋ ์์๋ฅผ ๋ณต์ฌํ์ฌ ๋ฐํ arr.slice(1) // [2, 3] </script>
๋ ๋ฒ์งธ ์ธ์๋ฅผ ์๋ตํ๋ฉด ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ธ๋ฑ์ค๋ถํฐ ๋ชจ๋ ์์๋ฅผ ๋ณต์ฌํ์ฌ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
<script> const arr = [1, 2, 3] // ๋ฐฐ์ด์ ๋์์ ๋ถํฐ ๋ชจ๋ ์์๋ฅผ ํ๊ฐ ๋ณต์ฌํ์ฌ ๋ฐํ arr.slice(-1) // [3] // ๋ฐฐ์ด์ ๋์์๋ถํฐ ๋ชจ๋ ์์๋ฅผ ๋๊ฐ ๋ณต์ฌํ์ฌ ๋ฐํ arr.slice(-2) // [2, 3] </script>
์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ์์์ธ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋์์ ๋ถํฐ ์์๋ฅผ ๋ณต์ฌํ์ฌ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
<script> const arr = [1, 2, 3] // ์ธ์๋ฅผ ๋ชจ๋ ์๋ตํ๋ฉด ์๋ณธ ๋ฐฐ์ด์ ๋ณต์ฌ๋ณธ ์์ฑ ํ ๋ฐํ const copy = arr.slice() console.log(copy); // [1, 2, 3] console.log(copy === arr); // false </script>
์ธ์๋ฅผ ๋ชจ๋ ์๋ตํ๋ฉด ์๋ณธ ๋ฐฐ์ด์ ๋ณต์ฌ๋ณธ์ ์์ฑํ์ฌ ๋ฐํํ๋ค.
์๋ณธ ๋ฐฐ์ด์ ์ค๊ฐ์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ค๊ฐ์ ์๋ ์์๋ฅผ ์ ๊ฑฐํด ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝํ๊ณ ์ ๊ฑฐํ ์์๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
splice(start[, deleteCount[,item1[, item2[, ...]]]])
start
์๋ณธ ๋ฐฐ์ด์ ์์๋ฅผ ์ ๊ฑฐํ๊ธฐ ์์ํ ์ธ๋ฑ์ค๋ก start๋ง ์ง์ ํ๋ฉด ์๋ณธ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ์์์ธ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋์์์ ์ธ๋ฑ์ค๋ฅผ ์๋ฏธํ๋ค.
deleteCount(option)
์๋ณธ ๋ฐฐ์ด์ ์์๋ฅผ ์ ๊ฑฐํ๊ธฐ ์์ํ ์ธ๋ฑ์ค์ธ start๋ถํฐ ์ ๊ฑฐํ ์์์ ๊ฐ์๋ก 0์ธ ๊ฒฝ์ฐ ์๋ฌด๋ฐ ์์๋ ์ ๊ฑฐ๋์ง ์๋๋ค.
items(option)
์ ๊ฑฐํ ์์น์ ์ฝ์
ํ ์์์ ๋ชฉ๋ก์ผ๋ก ์๋ตํ ๊ฒฝ์ฐ ์๋ณธ ๋ฐฐ์ด์์ ์์๋ค์ ์ ๊ฑฐํ๊ธฐ๋ง ํ๋ค.
<script> const arr = [1, 2, 3, 4] // ์๋ณธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค 1๋ถํฐ, 2๊ฐ์ ์์ ์ญ์ ํ, ๊ทธ ์๋ฆฌ์ ์๋ก์ด ์์ 20, 30 ์ฝ์ ํ๋ค. const result = arr.splice(1, 2, 20, 30) // ์ ๊ฑฐํ ์์๊ฐ ๋ฐฐ์ด๋ก ๋ฐํ console.log(result); // 2, 3 // splice ๋ฉ์๋ ์ญ์ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝ console.log(arr); // [1, 2, 20, 30 ] </script>
splice ๋ฉ์๋์ 3๊ฐ์ ์ธ์ ๋ชจ๋ ์ ๋ฌํ๋ฉด ์์ ์ธ๋ฑ์ค๋ถํฐ ๋๋ฒ์งธ, ์ ๊ฑฐํ ์์์ ๊ฐ์๋งํผ ์๋ณธ ๋ฐฐ์ด์์ ์ ๊ฑฐ ํ ์ ์งธ, ์ ๊ฑฐํ ์์น์์ ์ฝ์ ํ ์์๋ค์ ์๋ณธ ๋ฐฐ์ด์ ์ฝ์ ํ๋ค.
<script> const arr = [1, 2, 3] // ๋ฐฐ์ด์ ๋์์๋ถํฐ ์์๋ฅผ ๋ ๊ฐ ๋ณต์ฌํ์ฌ ๋ฐํํ๋ค arr.splice(-2) // [2, 3] console.log(arr) // [1] </script>
์ฒซ ๋ฒ์งธ ์ธ์๊ฐ ์์๋ฉด ์๋ณธ ๋ฐฐ์ด์ ๋ฐฐ์ด ๋์์๋ถํฐ ์์๊ฐ ์ญ์ ๋๊ณ ์ญ์ ๋ ์์๋ฅผ ๋ณต์ฌํ์ฌ ๋ฐฐ์ด๋ก ๋ฐํํ๋ค.
<script> const arr = [1, 2, 3, 4] // ์๋ณธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค 1๋ถํฐ, 0๊ฐ์ ์์ ์ญ์ ํ, ๊ทธ ์๋ฆฌ์ ์๋ก์ด ์์ 100 ์ฝ์ const result = arr.splice(1, 0, 100) // ์ ๊ฑฐํ ์์๊ฐ ๋ฐฐ์ด๋ก ๋ฐํ console.log(result); // [] // splice ๋ฉ์๋ ์ญ์ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝ console.log(arr); // [1, 100, 2, 3, 4 ] </script>
๋ ๋ฒ์งธ ์ธ์, ์ ๊ฑฐํ ์์ ๊ฐ์๋ฅผ 0์ผ๋ก ์ง์ ํ๋ฉด ์๋ณธ ๋ฐฐ์ด์ ์๋ก์ด ์์๋ค๋ง ์ฝ์ ํ๊ณ ๋น ๋ฐฐ์ด์ ๋ฐํํ๋ค.
<script> const arr = [1, 2, 3, 4] // ์๋ณธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค 1๋ถํฐ, 2๊ฐ์ ์์ ์ญ์ const result = arr.splice(1, 2) // ์ ๊ฑฐํ ์์๊ฐ ๋ฐฐ์ด๋ก ๋ฐํ console.log(result); // [2, 3] // splice ๋ฉ์๋ ์ญ์ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝ console.log(arr); // [1, 4 ] </script>
์ธ ๋ฒ์งธ ์ธ์, ์ ๊ฑฐํ ์์น์ ์ถ๊ฐํ ์์์ ๋ชฉ๋ก์ ์ ๋ฌํ์ง ์์ผ๋ฉด ์๋ณธ ๋ฐฐ์ด์์ ์ง์ ๋ ์์๋ฅผ ์ญ์ ํ๊ณ ์ญ์ ๋ ์์๋ฅผ ๋ฐํํ๋ค.
<script> const arr = [1, 2, 3, 4] // ์๋ณธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค 1๋ถํฐ, 2๊ฐ์ ์์ ์ญ์ const result = arr.splice(1) // ์ ๊ฑฐํ ์์๊ฐ ๋ฐฐ์ด๋ก ๋ฐํ console.log(result); // [2, 3, 4] // splice ๋ฉ์๋ ์ญ์ ์๋ณธ ๋ฐฐ์ด์ ์ง์ ๋ณ๊ฒฝ console.log(arr); // [1] </script>
๋ ๋ฒ์งธ ์ธ์, ์ ๊ฑฐํ ์์์ ๊ฐ์๋ฅผ ์๋ตํ๋ฉด ์ฒซ ๋ฒ์งธ ์ธ์๋ก ์ ๋ฌ๋ ์์ ์ธ๋ฑ์ค๋ถํฐ ์๋ณธ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ์ ๊ฑฐํ ์์๋ฅผ ๋ฐํํ๋ค.
์ฃผ์ด์ง ํจ์์ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํฉ๋๋ค.
filter(callback(element[, index[, array]])[, thisArg])
callback
๊ฐ ์์๋ฅผ ์ํํ ํจ์. true๋ฅผ ๋ฐํํ๋ฉด ์์๋ฅผ ์ ์งํ๊ณ , false๋ฅผ ๋ฐํํ๋ฉด ๋ฒ๋ฆฝ๋๋ค. ๋ค์ ์ธ ๊ฐ์ง ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ต๋๋ค.
thisArg
callback์ ์คํํ ๋ this๋ก ์ฌ์ฉํ๋ ๊ฐ.
<script> //๋ฐฐ์ด์์ ๊ฐ์ด 10๋ฏธ๋ง์ธ ์กฐ๊ฑด์ ๋ง๋ ์์๋ฅผ ์ถ์ถํ๋ ค๊ณ ํจ. //1. filter() ์ธ์์์ ๋ฐ๋ก ํจ์๋ฅผ ์จ์ฃผ๋ ๋ฐฉ๋ฒ const array = [3,5,11,0,9]; const result = array.filter((value) => value < 10) // filter๋ฅผ ๊ฑฐ์ณ ์กฐ๊ฑด์ ๋ง๋ ์์๋ค๋ก ์ด๋ฃจ์ด์ง ์๋ก์ด ๋ฐฐ์ด ์ถ๋ ฅ console.log(result); //[3, 5, 0, 9] --------------------------------------- //2. ๋ฐ์์ ํจ์๋ฅผ ์ ์ธํ๊ณ filter()์ ์ธ์์์ callback ํ๋ ๋ฒ const array = = [3,5,11,0,9]; function lessThanTen() { return value < 10 } const result = array.filter(lessThanTen); // ์ญ์ filter๋ฅผ ๊ฑฐ์ณ ์กฐ๊ฑด์ ๋ง๋ ์์๋ค๋ก ์ด๋ฃจ์ด์ง ์๋ก์ด ๋ฐฐ์ด ์ถ๋ ฅ console.log(result); //[3, 5, 0, 9] </script>
๋ฐฐ์ด ๋ด์ฉ ๊ฒ์ํ๊ธฐ
<script> const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange']; function filterItems() { return fruits.filter((value) => value.includes('ap')) } console.log(filterItems('ap')); // ['apple', 'grapes'] </script>
includes
๋ฉ์๋๋ฅผ ํจ๊ป ์ฌ์ฉํด์ ๋ฐฐ์ด ๋ด์ฉ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฒ์ํ ์ ์๋ค.
์ธ์๋ก ์ฃผ์ด์ง ๋ฐฐ์ด์ด๋ ๊ฐ์ ๊ธฐ์กด ๋ฐฐ์ด๋ก ์ถ๊ฐํด '์๋ก์ด' ๋ฐฐ์ด๋ก ๋ฐํํ๊ณ ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์๋๋ค.
concat([value1[, value2[, ...[, valueN]]]])
<script> const arr1 = [1, 2] const arr2 = [3, 4] // arr2๋ฅผ ์๋ณธ ๋ฐฐ์ด arr1์ ๋ง์ง๋ง ์์๋ก ์ถ๊ฐํ ์๋ก์ด ๋ฐฐ์ด ๋ฐํ let result = arr1.concat(arr2); console.log(result); // [1, 2, 3, 4] // ์ซ์๋ฅผ ์๋ณธ ๋ฐฐ์ด arr1์ ๋ง์ง๋ง ์์๋ก ์ถ๊ฐํ ์๋ก์ด ๋ฐฐ์ด ๋ฐํ let result = arr1.concat(3); console.log(result); // [1, 2, 3] // ๋ฐฐ์ด arr2์ ์ซ์๋ฅผ ์๋ณธ ๋ฐฐ์ด arr1์ ๋ง์ง๋ง ์์๋ก ์ถ๊ฐํ ์๋ก์ด ๋ฐฐ์ด ๋ฐํ let result = arr1.concat(arr2, 5); console.log(result); // [1, 2, 3, 4, 5] console.log(arr1); // [1, 2], ์๋ณธ ๋ฐฐ์ด ๋ณ๊ฒฝ๋์ง ์์ </script>
์ธ์๋ก ์ ๋ฌํ ๊ฐ์ด ๋ฐฐ์ด์ด๋ฉด ํด์ฒดํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์๋ก ์ถ๊ฐํ๋ค.
์๋ณธ ๋ฐฐ์ด์์ ์ธ์๋ก ์ ๋ฌ๋ ์์๋ฅผ ๊ฒ์ํ์ฌ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค.
indexOf(searchElement[, fromIndex])
searchElement
๋ฐฐ์ด์์ ์ฐพ์ ์์.
fromIndex(Option)
๊ฒ์์ ์์ํ ์์ธ.
<script> let a = ['justcode','study','javascript','js'] // index 0 1 2 3 console.log(a.indexOf('study')) // 1 console.log(a.indexOf('java')) // -1 </script>
<script> let a = ['justcode', 'js', 'study','javascript','js'] // index 0 1 2 3 4 console.log(a.indexOf('js')) // 1 </script>
์๋ณธ ๋ฐฐ์ด์ ์ธ์๋ก ์ ๋ฌํ ์์์ ์ค๋ณต๋๋ ์์๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด ์ฒซ ๋ฒ์งธ๋ก ๊ฒ์๋ ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ ์กด์ฌํ์ง ์๋๋ค๋ฉด -1์ ๋ฐํํ๋ค.
๋ฐฐ์ด ๋ด์ ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํ์ฌ boolean์ ๋ฐํํ๋ค.
includes(valueToFind[, fromIndex])
valueToFind
ํ์ํ ์์.
fromIndex (option)
์ด ๋ฐฐ์ด์์ searchElement ๊ฒ์์ ์์ํ ์์น์
๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 0์
๋๋ค.
<script> // ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ ์๋งํ ์์๋ฅผ ์์ฑํ๊ณ 0๋ถํฐ 1์ ์ฆ๊ฐํ๋ฉด์ ์์๋ฅผ ์ฑ์ด๋ค. const arr = [1, 2, 3]; arr.includes(2); true arr.includes(100); false </script>
์ฒซ ๋ฒ์งธ ์ธ์๋ก ๊ฒ์ํ ๋์์ ์ง์ ํ๋ค.
<script> // ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ ์๋งํ ์์๋ฅผ ์์ฑํ๊ณ 0๋ถํฐ 1์ ์ฆ๊ฐํ๋ฉด์ ์์๋ฅผ ์ฑ์ด๋ค. const arr = [1, 2, 3]; arr.includes(1, 1); false arr.includes(3, -1); true </script>
๋ ๋ฒ์งธ ์ธ์๋ก ๊ฒ์์ ์์ํ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฌํ ์ ์๊ณ ์๋ต์ ๊ธฐ๋ณธ ๊ฐ์ด 0์ด ์ค์ ๋๊ณ ์ธ์์ ์์๋ฅผ ์ ๋ฌํ๋ฉด length ํ๋กํผํฐ ๊ฐ๊ณผ ์์ ์ธ๋ฑ์ค๋ฅผ ํฉ์ฐํ์ฌ ๊ฒ์ ์์ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฌํ๋ค.
<script> var arr = ['a', 'b', 'c']; arr.includes('c', 3); // false arr.includes('c', 100); // false </script>
fromIndex
๊ฐ ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฌ๋ค๋ฉด, false ๋ฅผ ๋ฐํํ๋ค. ๋ฐฐ์ด์ ๊ฒ์๋์ง ์๋๋ค.