สมมติว่าเรามีวัตถุ JSON แบบสั้นเช่นนี้ -
const obj = {"name":"sam","age":"24","isMarried":"false"};
ในที่นี้ ค่า Number และ Boolean บางค่าถูกบังคับให้เป็นสตริงโดยไม่ได้ตั้งใจ
เช่นเดียวกับคุณสมบัติอายุซึ่งเป็นตัวเลขและทรัพย์สินที่แต่งงานแล้วซึ่งเป็นบูลีน งานของเราคือการเขียนฟังก์ชันที่รับวัตถุดังกล่าวและเปลี่ยนประเภทข้อมูลที่ไม่ถูกต้องเหล่านี้ให้ถูกต้องด้วยชนิดที่ถูกต้อง
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const obj = { "name":"sam", "age":"24", "isMarried":"false" }; const convertToOriginal = (obj = {}) => { const keys = Object.keys(obj); for(let i = 0; i < keys.length; i++){ const key = keys[i]; const num = parseInt(obj[key], 10); const val = obj[key]; if(num && String(num) === val){ obj[key] = num; } else if(val === 'true' || val === 'false'){ obj[key] = Boolean(val); }; }; }; convertToOriginal(obj); console.log(obj);
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
{ name: 'sam', age: 24, isMarried: true }