मेरे पास एक ऑब्जेक्ट है जिसमें एकाधिक इंडेक्स हैं और प्रत्येक इंडेक्स में अलग-अलग कुंजी और मान डेटा होता है। नीचे दिए गए डेटा का उपयोग करके, मैं डेटा को निम्न सरणी प्रारूप में कैसे परिवर्तित कर सकता हूं?

"result": {
  "abc": {
    "0": {
      "1.0": 126,
      "0.9998": 3,
      "1.0003": 19
    },
    "1": {
      "1.0": 111,
      "0.9997": 4,
      "1.0003": 19
    },
    "2": {
      "1.0": 89,
      "1.0001": 75,
      "0.9998": 5
    }
  },
  "xyz": {
    "0": {
      "1.0": 1,
      "0.9998": 5,
      "1.0003": 20
    },
    "1": {
      "1.0": 141,
      "0.9997": 56,
      "1.0003": 19
    },
    "2": {
      "1.0": 89,
      "1.0001": 75,
      "0.9998": 5
    }
  }
}

वांछित आउटपुट जिसे मैं ढूंढ रहा हूं वह निम्न है:

return [
  [126, 3, 19],
  [111, 4, 19],
  [89, 75, 5],
  [1, 5, 20],
  [141, 56, 19],
  [89, 75, 5]
]

मैंने निम्नलिखित की कोशिश की लेकिन यह केवल एकल सरणी में शून्य अनुक्रमणिका देता है:

const values = Object.values(result)
const test = Object.values(...values);
console.log(test) 
// [126, 3, 19]
0
Shaun 22 मार्च 2021, 00:04

2 जवाब

सबसे बढ़िया उत्तर
const data = {
  "abc": {
    "0": { "1.0": 126, "0.9998": 3, "1.0003": 19 },
    "1": { "1.0": 111, "0.9997": 4, "1.0003": 19 },
    "2": { "1.0": 89, "1.0001": 75, "0.9998": 5 }
  },
  "xyz": {
    "0": { "1.0": 1, "0.9998": 5, "1.0003": 20 },
    "1": { "1.0": 141, "0.9997": 56, "1.0003": 19 },
    "2": { "1.0": 89, "1.0001": 75, "0.9998": 5 }
  }
};

const res = Object.values(data)
  .reduce((acc, item) => ([ ...acc, ...Object.values(item) ]), [])
  .map(Object.values);

console.log(res);
2
Majed Badawi 22 मार्च 2021, 00:40

Object.values() का उपयोग करें, फिर Array.flatMap() के साथ मैप करें ताकि आंतरिक वस्तुओं की एक सपाट सरणी प्राप्त हो, और केवल मान प्राप्त करने के लिए Array.map() के साथ फिर से मैप करें:

const data = {"abc":{"0":{"1.0":126,"0.9998":3,"1.0003":19},"1":{"1.0":111,"0.9997":4,"1.0003":19},"2":{"1.0":89,"1.0001":75,"0.9998":5}},"xyz":{"0":{"1.0":1,"0.9998":5,"1.0003":20},"1":{"1.0":141,"0.9997":56,"1.0003":19},"2":{"1.0":89,"1.0001":75,"0.9998":5}}};

const res = Object.values(data)
  .flatMap(Object.values)
  .map(Object.values);

console.log(res);
0
Ori Drori 22 मार्च 2021, 00:46