Computer >> Máy Tính >  >> Lập trình >> Javascript

Tạo mảng từ JavaScript đối tượng JSON

Giả sử, chúng ta có đối tượng JSON sau -

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

Chúng tôi được yêu cầu viết một hàm JavaScript có một đối tượng như thế này -

Sau đó, hàm sẽ ánh xạ thuộc tính "rssi" của tất cả các đối tượng lồng nhau thành một mảng các mảng lồng nhau tương ứng.

Do đó, đối với mảng trên, đầu ra sẽ như thế này -

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

Ví dụ

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

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