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

สร้างอาร์เรย์จากวัตถุ JSON JavaScript


สมมติว่าเรามีวัตถุ JSON ต่อไปนี้ -

const obj = {
   "test1": [{
      "1": {
      "rssi": -25,
   }
   }, {
      "2": {
         "rssi": -25,
      }
   }],
   "test2": [{
      "15": {
         "rssi": -10,
      } }, {
         "19": {
         "rssi": -21,
      }
   }]
};

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับวัตถุเช่นนี้ -

ฟังก์ชันควรจับคู่คุณสมบัติ "rssi" ของออบเจ็กต์ที่ซ้อนกันทั้งหมดกับอาร์เรย์ที่ซ้อนกันของอาร์เรย์ที่สอดคล้องกัน

ดังนั้น สำหรับอาร์เรย์ด้านบน ผลลัพธ์ควรมีลักษณะดังนี้ −

const output = [[-25, -25], [-10, -21]];

ตัวอย่าง

const obj = {
   "test1": [{
      "1": {
         "rssi": -25,
      }
   }, {
      "2": {
      "rssi": -25,
   }
}],
"test2": [
   {
      "15":
      { "rssi": -10,
      }
      }, {
         "19": {
         "rssi": -21,
      }
   }]
};
const mapToValues = (object = {}) => {
   const res = [];
   for (let key in object) {
      let obj = object[key];
      let aux = [];
      for (let i = 0; i < obj.length; i++) {
         for (x in obj[i]) {
            aux.push(obj[i][x].rssi);
         }
      }
      res.push(aux);
   }
   return res;
};
console.log(mapToValues(obj));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[ [ -25, -25 ], [ -10, -21 ] ]