json ① → name의 값만 사용
[
{ id: 1, name: 'Apple' },
{ id: 3, name: "John's Orange" },
{ id: 162, name: 'Banana' },
...
{ id: 3215, name: 'Sweet Potato' }
]
json ② → name의 값으로 가능한 모든 문자열이 key, 한글로 번역한 문자열이 value
{
"Apple": "사과",
"Orange": "오렌지",
"John's Orange": "존의 오렌지",
...
"Banana": "바나나"
...
"Sweet Potato": "고구마"
}
원하는 출력
→ 사과, 존의 오렌지, 바나나, ... , 고구마
사용한 코드
var original = require("./경로/json①");
const translate = require("./경로/json②");
var original_str= JSON.stringify(original);
for (var val in translate) {
original_str = original_str.split(val).join(translate[val]);
}
var changed = JSON.parse(original_str)
var changed_name = changed.map(function(el) {
return el.name;
});
var changed_name_str = changed_name.join(', ');
console.log(changed_name_str);
실제 출력
→ 사과, John's 오렌지, 바나나, ... , 고구마
질문 1: '존의 오렌지'보다 '오렌지'가 먼저 나와서 'John's 오렌지'가 되는데, json 파일 수정 없이 가능할까요?
질문 2: 제가 생각해봐도 비효율적인 거 같은데 더 효율적인 방법이 있을까요?
검색어만 던져주시면 스택오버플로우 찾아보겟읍니다..
original.map(item => translate[item.name]).join(', ')
??? 이거 하나로 다 되네요..
속도도 빨라지고 코드 길이도 많이 줄어들었네요 감사합니다!
이거지 ㅋㅋ
비슷한 유형이 PS 1~2단계에서 많이 나오니까 나중에 한번 해보는것도 추천드려요.
취미로 하는 거라 잘 몰라서 그러는데 혹시 PS가 어떤 건가요?
Problem Solving이라고 해서 코딩테스트를 PS라고 많이 불러요!!
비교할때 문자열 길이 긴것부터 정렬한 후 비교
답변 감사합니다