20231209 TIL
function parseAndDecodeArray(data) {
let parsedArray = JSON.parse(data);
return parsedArray.map(item => {
if (/\\u[\da-fA-F]{4}/.test(item)) {
return item.replace(/\\u([\da-fA-F]{4})/g, (_, unicode) =>
String.fromCharCode(parseInt(unicode, 16))
);
}
return item;
});
}
function parseAndDecodeArray(data) {
let parsedArray = JSON.parse(parsedArray)
// Check if the array contains any Unicode strings before applying map
const containsUnicode = parsedArray.some(item => /\\u[\da-fA-F]{4}/.test(item));
if (!containsUnicode) return parsedArray;
return parsedArray.map(item => {
return item.replace(/\\u([\da-fA-F]{4})/g, (_, unicode) =>
String.fromCharCode(parseInt(unicode, 16))
);
});
}
.some()
: 배열 안의 어떤 요소라도 주어진 판별 함수를 적어도 하나라도 통과하는지 테스트. '적어도 하나'라도 참인 값을 반환하면 true를 반환하는게 포인트!정규식.test(확인할 문자열)
: 주어진 문자열이 정규 표현식을 만족하는지 판별하고, 그 여부를 true 또는 false로 반환.