// 특정 문자열을 배열과 객체로 변환하기 - Number.isNaN() 사용해서 숫자 판별
//[1]: 문자열 -> 배열로 -> 객체로 변환
// 이때 --> 최종 객체로 변환시 배열 소요내의 값들 중에서 --> 숫자만 판별해서 변환.
//[2]: 실습
// 문자열
const someStr = "홍길동 10, 이순신 20, 강감찬 30, 김유신 40, 을지문덕 50";
// 배열로 만들기 --> split()
const frag = someStr.split(", ");
console.log(frag);
// 객체로 만들기
const dataObj = [];
// 반복 --> 전통적인 방식
for(let i=0; i < frag.length; i++) {
// 각각의 피스로 쪼개기 --> 역시 배열
let piece = frag[i].split(" "); // "홍길동 10"
console.log(piece[0], typeof piece[0]); // 홍길동, string
console.log(piece[1], typeof piece[1]); // 10, string
}
-------------------------------------------------------------------------------------------------------------------
const someStr = "홍길동 10, 이순신 20, 강감찬 30, 김유신 40, 을지문덕 50";
const frag = someStr.split(", ");
// 객체로 만들기
const dataObj = [];
for(let i=0; i < frag.length; i++) {
// 각각의 피스로 쪼개기 --> 역시 배열
let piece = frag[i].split(" "); // "홍길동 10"
// console.log(piece[0], typeof piece[0]); // 홍길동, string
// console.log(piece[1], typeof piece[1]); // 10, string
let key = piece[0];
// let value = piece[1];
// console.log(typeof value); // string
// if조건문을 사용하여 piece[1] 요소가 숫자인지를 판별하여 value 값에 세팅 --> Number.isNaN() 사용
let value;
if(!Number.isNaN(Number(piece[1]))) {
value = Number(piece[1]);
}
else {
value = piece[1];
}
dataObj[key] = value;
}
console.log(dataObj);
console.log(dataObj.강감찬);
console.log(typeof dataObj.강감찬);
-------------------------------------------------------------------------------------------------------------------
const someStr = "홍길동 10, 이순신 20, 강감찬 30, 김유신 40, 을지문덕 50";
const frag = someStr.split(", ");
// 객체로 만들기
const dataObj = [];
for(let i=0; i < frag.length; i++) {
// 각각의 피스로 쪼개기 --> 역시 배열
let piece = frag[i].split(" "); // "홍길동 10"
let key = piece[0];
// if조건문 --> 한줄로 작성 --> 삼항 연산자
let value = Number.isNaN(Number(piece[1])) ? piece[1]: Number(piece[1]);
dataObj[key] = value;
}
console.log(dataObj);
console.log(dataObj.강감찬); // 30
console.log(typeof dataObj.강감찬); // number
-------------------------------------------------------------------------------------------------------------------
// 배열로 만들기
const someStr = "홍길동 10, 이순신 20, 강감찬 30, 김유신 40, 을지문덕 50";
const frag = someStr.split(', ');
console.log(frag);
// 객체로 만들기
const dataObj = [];
// 객체로 만들기
// 반복 --> forEach() 메서드 사용 --> forEach(val[, idx])
frag.forEach(function(val) {
// 할 일 처리 --> return
// 피스별로 각각 쪼개기
let piece = val.split(" ");
// key, value 변수에 담기
let key = piece[0];
// 숫자 판별 --> Number.isNaN()
let value = Number.isNaN(Number(piece[1])) ? piece[1]:Number(piece[1]);
// 객체의 key:value 로 세팅
dataObj[key] = value;
console.log(key, value);
});
-------------------------------------------------------------------------------------------------------------------
// 배열로 만들기
const someStr = "홍길동 10, 이순신 20, 강감찬 30, 김유신 40, 을지문덕 50";
const frag = someStr.split(', ');
console.log(frag);
// 객체로 만들기
const dataObj = [];
// 객체로 만들기
// 반복 --> forEach() 메서드 사용 --> 화살표 함수 + 구조 분해 할당
frag.forEach(val=> {
let [key, value] = val.split(" ");
value = Number.isNaN(Number(value)) ? value:Number(value); // let 변수 선언해줬으므로 let value 하면 안됨
dataObj[key] = value;
});
// 출력
console.log(dataObj);
console.log(dataObj.강감찬); // 30
console.log(typeof dataObj.강감찬); // number
'개발 및 관리 > Javascript' 카테고리의 다른 글
JSON.stringify 사용 (1) | 2023.11.21 |
---|---|
map 메서드, reduce 메서드 (0) | 2023.11.21 |
isNan() vs Number.isNaN() 비교 (0) | 2023.11.18 |
find, filter (0) | 2023.11.18 |
include, join, reverse (0) | 2023.11.18 |