정해진 단어를 기준으로 자르는 것은 split()을 통해 할 수 있고, 숫자로 바꾸는 것은 join()을 통해 할 수 있다.
function solution(numbers) {
let arr = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
for(let i=0;i<arr.length; i++){
numbers = numbers.split(arr[i]).join(i);
}
return Number(numbers);
}
객체로 풀 때는 정규표현식과 replace를 이용해 풀 수 있다.
function solution(numbers) {
const obj = {
zero: 0, one: 1, two: 2, three: 3, four: 4,
five: 5, six: 6, seven: 7, eight: 8, nine: 9
};
const num = numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => {
return obj[v];
});
return Number(num);
}
arr[num1]을 새로운 변수에 따로 저장해두지 않으면 2번 과정에서 arr[num1] 값이 변경되어 있기 때문에 arr[num2]에 arr[num1]의 값을 넣을 수 없다.
function solution(my_string, num1, num2) {
let arr = my_string.split('');
let num = arr[num1];
arr[num1] = arr[num2];
arr[num2] = num;
return arr.join('');
}
구조분해를 응용하면 위의 번거로운 과정없이 간단하게 바꿀 수 있다..!
function solution(my_string, num1, num2) {
my_string = my_string.split('');
[my_string[num1], my_string[num2]] = [my_string[num2], my_string[num1]];
return my_string.join('');
}
function solution(s) {
let obj = {};
let answer = '';
s.split('').forEach((x) => obj[x] = (obj[x] || 0) + 1);
Object.keys(obj).sort().map(key => obj[key] === 1 ? answer+=key : "");
return answer;
}
문자열의 각 요소에 대하여 반복문을 돌려 index를 순서대로 찾은 것과 역순으로 찾은 것이 일치하는 것을 배열에 담아준다.
function solution(s) {
let res = [];
for (let c of s) if (s.indexOf(c) === s.lastIndexOf(c)) res.push(c);
return res.sort().join('');
}
⭐️ Object.keys(object)
: object의 key값들을 배열에 담아준다.
⭐️ array.indexOf(value)
: 주어진 값과 일치하는 값을 순서대로 탐색하여 최초로 마주치는 Index를 반환한다.
⭐️ array.lastIndexOf(value)
: 주어진 값과 일치하는 값을 역순으로 탐색하여 최초로 마주치는 Index를 반환한다.
반복문을 통해 나머지가 0인 수(약수)들을 구하여 배열에 담아준다.
function solution(n) {
var answer = [];
for(i=0;i<=n;i++){
if(n % i === 0){
answer.push(i);
}
}
return answer;
}