(1) O : 통과하기는 했으나 뭔가 아쉬운 풀이. replaceAll 은 ECMA-262 (2021) 에 추가된 기능이므로 최신 개발 환경이 아니라면 사용을 권장하지 않는다고 해서 (2) 에서 수정
function solution (numbers) {
const dic = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
dic.map((num, idx) => numbers = numbers.replaceAll(num, idx))
return +numbers
}
(2) replaceAll => split + join
function solution (numbers) {
const dic = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
dic.map((num, idx) => numbers = numbers.split(num).join(idx))
return +numbers
}
function solution(numbers) {
const nums = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9 };
const regex = new RegExp(Object.keys(nums).join('|'), 'g');
return +numbers.replace(regex, key => nums[key]);
}
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);
}
function solution(numbers) {
let numStr = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" ];
numStr.forEach((str, idx) => {
numbers = numbers.replaceAll(str, idx);
});
return Number(numbers);
}