์ ์ ๋ฆฌ์คํธ num_list๊ฐ ์ฃผ์ด์ง ๋, ์ฒซ ๋ฒ์งธ๋ก ๋์ค๋ ์์์ ์ธ๋ฑ์ค๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์์๊ฐ ์๋ค๋ฉด -1์ returnํฉ๋๋ค.
function solution(num_list) {
return num_list.indexOf(num_list.filter((num) => num < 0)[0])
}
const solution = num_list => num_list.findIndex(v => v < 0)
์์ด์์ a, e, i, o, u ๋ค์ฏ ๊ฐ์ง ์ํ๋ฒณ์ ๋ชจ์์ผ๋ก ๋ถ๋ฅํฉ๋๋ค. ๋ฌธ์์ด my_string์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ๋ชจ์์ ์ ๊ฑฐํ ๋ฌธ์์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
function solution(my_string) {
let vowels = ['a', 'e', 'i', 'o', 'u'];
return my_string.split('').filter((str) => vowels.indexOf(str) === -1).join('')
}
indexOf
๋์ includes
๋ ์ฌ์ฉํ ์ ์๊ฒ ๋ค.includes
๋ ๋ฐฐ์ด ๋ฉ์๋์ด์ ๋ฌธ์์ด ๋ฉ์๋๋๊น! function solution(my_string) {
return my_string.replace(/[aeiou]/g, '');
}
var newStr = str.replace(์ ๊ท์|๋ถ๋ถ ๋ฌธ์์ด, ์๋ก์ด ๋ถ๋ถ ๋ฌธ์์ด|ํจ์)
var text = 'LLLOOOVVVEEE'; // ์ผ๋ฐ ๋ฌธ์์ด ์นํ text.replace('O', 'I'); // LLLLIOOOVVVVEEEE // ์ ๊ท์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด ์นํ text.replace(/O/gi, 'I'); // LLLLIIIIVVVVEEEE
์๋์ ๊ฐ์ด ํจ์๋ฅผ ์ฌ์ฉํด์ ์นํํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
var text = 'LLLOOOVVVEEE'; function replaceFn(str) { return '{' + str + '}'; } text.replace(/V/gi, replaceFn); // LLLLOOOO{V}{V}{V}{V}EEEE
์ ๊ท ํํ์, ๋๋ ์ ๊ท์์ ๋ฌธ์์ด์์ ํน์ ๋ฌธ์ ์กฐํฉ์ ์ฐพ๊ธฐ ์ํ ํจํด
/[aeiou]/
์ด๋ ๊ฒ /
๋ก ๊ฐ์ธ์ ํํํ๋ค. /[aeiou]/g
๋ผ๊ณ ์ด ๊ฒ์ g
๋ ๊ธ๋ก๋ฒ ์ ํ์๋ก, g modifier
๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ์ ์ฒด ๋งค์น๋๋ ๊ฒ๋ค์ ํ๋ฒ์ ์นํํ ์ ์๋ค. i
(insensitive) modifier๋ ๋์๋ฌธ์ ๊ตฌ๋ถ ์ ๊ฑฐ๋ฌธ์์ด my_string๊ณผ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, my_string์ ๋ค์ด์๋ ๊ฐ ๋ฌธ์๋ฅผ n๋งํผ ๋ฐ๋ณตํ ๋ฌธ์์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
function solution(my_string, n) {
let result = [];
for(let i=0; i<my_string.length; i++){
for(let j=0; j<n; j++){
result.push(my_string[i])
}
}
return result.join('')
}
function solution(my_string, n) {
var answer = [...my_string].map(v => v.repeat(n)).join("");
console.log(answer);
return answer;
}
repeat
์ ์กด์ฌ๋ฅผ ์์ง ๋ง์!!! ๋ฌธ์์ด my_string์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. my_string์ ๊ฑฐ๊พธ๋ก ๋ค์ง์ ๋ฌธ์์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
function solution(my_string) {
let strToArr = [...my_string];
let result = [];
for(let i=strToArr.length-1; i>=0; i--){
result.push(strToArr[i]);
}
return result.join('')
}
function solution(my_string) {
var answer = [...my_string].reverse().join("");
return answer;
}
reverse
๋ฅผ ์ฌ์ฉํ ์ ๋ฌธ์์ด my_string์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. my_string์์ ๋ชจ๋ ์์ฐ์๋ค์ ํฉ์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
function solution(my_string) {
let sum = 0;
for(let i=0; i<my_string.length; i++){
if(!isNaN(my_string[i])){
sum += Number(my_string[i])
}
}
return sum;
}
function solution(my_string) {
return [...my_string].reduce((acc,cur)=>Number(cur) ? +acc + +cur : acc, 0)
}
reduce
ํจ์ ์ฌ์ฉํ ์ & isNaN()
๋์ Number()
์ฌ์ฉํ ์ .for
์ฌ์ฉ์ ์ค์ด์! map
, filter
, reduce
๋ฑ๋ฑ ๋ค๋ฅธ ๋ฐฉ๋ฒ์๋ ์ต์ํด์ง์!
if
์ ์ฌ์ฉ์ ์ค์ด์! ์ผํญ์ฐ์ฐ์์ ์ข ๋ ์ต์ํด์ง๋๋ก ํ์!
JavaScript์ ๋ฌธ์์ด ๋ฉ์๋์ธ indexOf
str1
๋ฌธ์์ด ์์ str2
๋ฌธ์์ด์ด ํฌํจ๋์ด ์์ผ๋ฉด 1์ ๋ฐํ ์๋๋ฉด 2๋ฅผ ๋ฐํ ํ๋ ํจ์ // indexOf๋ฅผ ํ์ฉํ ๋ฐฉ๋ฒ
function solution(str1, str2) {
return str1.indexOf(str2) !== -1 ? 1 : 2
}
// split์ ํ์ฉํ ๋ฐฉ๋ฒ
function solution(str1, str2) {
return str1.split(str2).length > 1 ? 1 : 2
}
split()
ํ์ฉ ์ ํ์!
String
๊ฐ์ฒด๋ฅผ ์ง์ ํ ๊ตฌ๋ถ์๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ด๋ก ๋๋ ์ค๋ค.
๋ฐํ ๊ฐ์ ๋ฐฐ์ด!! Array!! ์ฆ, ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ์ฃผ๋ ์ญํ ์ ํ๋ค๊ณ ๋ ๋ณผ ์ ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฌธ์์ด์ ์๋ฅด๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ ํจ์
substr()
, substring()
, slice()
str.substr(start[, length])
str.substring(indexStart[, indexEnd])
str.slice(beginIndex[, endIndex])
์ด ์ค, ๋ฌธ์์ด์ ๋ค์์๋ถํฐ ์๋ฅผ ๋๋, slice()
๊ฐ ํจ์จ์ !