Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

แปลงจำนวนหรือวัตถุ JSON ประเภทบูลีนจากประเภทสตริงเป็นต้นฉบับใน JavaScript


สมมติว่าเรามีวัตถุ 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 }