indexOf์ ํํ
โ ๋ฐฐ์ด.indexOf(๊ฐ, ์์์ธ๋ฑ์ค)
โ ์์์ธ๋ฑ์ค์ ๊ฐ์ ๋ฃ์ง ์์ผ๋ฉด 0๋ฒ์งธ ์ธ๋ฑ์ค ๋ถํฐ ์์ํ๋ค.
โ ๊ฐ์ ํด๋น๋๋ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค.
โ ๊ฐ์ ํด๋น๋๋ ๊ฐ์ด ๋ฐฐ์ด์ ์์ง ์์ผ๋ฉด -1๋ฅผ ๋ฐํํ๋ค.
const arr = [1,1,1,2,3,3,4]; console.log(arr.indexOf(1)); // 0 ์ถ๋ ฅ console.log(arr.indexOf(1, 1)); // 1 ์ถ๋ ฅ console.log(arr.indexOf(5)); // -1 ์ถ๋ ฅ
๐ก ์ด์ ๊ฐ์ด ๊ฐ์ ํด๋น๋๋ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ ๊ฒ์ ์ ์ ์๋ค.
๐ก ์์์ธ๋ฑ์ค๋ถํฐ ๊ฐ์ ํด๋น๋๋ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ
๐ก ๊ฐ์ด ํด๋น ๋ฐฐ์ด์ ์์ผ๋ฉด -1๋ฅผ ๋ฐํํ๋ค.
์ด์ ๊ฐ์ ํน์ฑ์ ์ด์ฉํ์ฌ ๋ฐฐ์ด์ ์์ ์๋ ๊ฐ์ ์ค๋ณต์ ๊ฑฐ๋ฅผ ํ ์ ์๋ค.
const arr = [1,1,1,2,3,3,4]; const filter = []; // ์ค๋ณต์ ๊ฑฐํ ๊ฐ์ ๋ฃ์ ๋น ๋ฐฐ์ด ์ ์ธ // arr์ ๋ชจ๋ ์์ ํ์ for(let i = 0; i < arr.length; i++) { // filter์ indexOf์ ๊ฐ์ด -1์ด๋ฉด filter์ arr[i]์์ ์ฝ์ if(filter.indexOf(arr[i]) === -1) { filter.push(arr[i]); } } console.log(filter); // [1,2,3,4] ์ถ๋ ฅ
๐ก ์ด๋ฐ์์ผ๋ก ์ฝ๋ฉํ ์คํธ ์๊ณ ๋ฆฌ์ฆ์์ ๋ง์ด ์ฌ์ฉํ๋ ๋ฐฐ์ด์์ ์๋ ๊ฐ ์ค๋ณต์ ๊ฑฐ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํด ์ค๋ณต์ ๊ฑฐ๋ฅผ ํ๋ ๋ฐฉ๋ฒ๋ ์๊ณ ๋ฐฐ์ด์ ๋ฉ์๋์ธ filter๋ฅผ ์ฌ์ฉํด๋ ๊ฐ๋ฅํ๋ค.
const arr = [1,1,1,2,3,3,4]; // ๊ณ ์ฐจํจ์์ธ filter ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด return ๊ฐ์ด true๊ฒฝ์ฐ์ ๊ฐ์ ๋ฐํํ๋ค. const filter = arr.filter((item, index) => arr.indexOf(item) === index); console.log(filter); // [1,2,3,4] ์ถ๋ ฅ
๐ก arr.indexOf(item)์ด ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํจ์ผ๋ก filter์ ์ธ๋ฑ์ค์ ์ผ์นํ๋ฉด ๋ฐํํ์ฌ ์ค๋ณต๊ฐ์ ์ ๊ฑฐํ ์ ์๋ค.
ํจ์์ ์ต๋น๊ฐ ์ฐพ๊ธฐ๋ ๊ฐ๋ฅํ๋ค.
const arr = [1,1,1,2,3,3,4]; // ์ค๋ณต์ ์ ๊ฑฐํ ๋ฐฐ์ด ์์ฑ(์ ๋ฐฐ์ด๊ณผ ๋น๊ตํ๊ธฐ ์ํด์) const compare = arr.filter((item, index) => arr.indexOf(item) === index); const num = []; // ์นด์ดํ ์ซ์ ์ด๋ฆ const count = []; // ํจ์์์ ์ซ์ ์นด์ดํ for(let i = 0; i < compare.length; i++) { let answer = 0; let index = arr.indexOf(compare[i]); while(index !== -1) { answer++; index = arr.indexOf(compare[i], index + 1); // index๊ฐ -1์ด ๋ ๋๊น์ง ๋ฃจํ } num.push(compare[i]); count.push(answer); answer = 0; } const max = count.indexOf(Math.max(...count)); // ์ต๋น๊ฐ ์ธ๋ฑ์ค ๋ฒํธ console.log(num, count, max, num[max]); // num = [1,2,3,4] count =[3,1,2,1] max = 0 num[max] = 1
๐ก indexOf๋ฅผ ์ฌ์ฉํ์ฌ ์ต๋น๊ฐ ์ฐพ๊ธฐ๋ ๊ฐ๋ฅํ๋ค.
์ฐธ๊ณ ๋ฌธ์
MDN = Array.prototype.indexOf()