Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การสร้างอาร์เรย์จาก JSON Object ใน JavaScript


ภาพรวม

สมมติว่าเรามี JSON object:

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

เราต้องเขียนฟังก์ชันที่แมปคุณสมบัติ "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 ] ]