Значения объекта Javascript, возвращаемые как [объект, объект] - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть объект javascript, подобный следующему:

var Numeric_values = {
US:  {01: "202-555-0151", 02: "202-555-0167", 03: "202-555-0150"},
CAD: {01: "613-555-0144", 02: "613-555-0192", 03:"613-555-0151"},
AUS: {01: "1900 654 321"}
};

Я пытаюсь получить доступ ко всем значениям этого объекта и вывести их в виде строки, подобной этой:

"202-555-0151","202-555-0167", "202-555-0150"
"613-555-0144", "613-555-0192","613-555-0151"
"1900 654 321"

Я до сих пор пытался использовать Object.values ​​(Numeric_Values) и

for (let key in Numeric_values){
      console.log(Numeric_values[key]);
  }

, и они всегда возвращаются как [объект, объект], как я могу это исправить?

1 Ответ

0 голосов
/ 17 ноября 2018

Вы можете распечатать / получить к ним доступ через Object.values и Array.forEach:

var data = {
  US: {
    01: "202-555-0151",
    02: "202-555-0167",
    03: "202-555-0150"
  },
  CAD: {
    01: "613-555-0144",
    02: "613-555-0192",
    03: "613-555-0151"
  },
  AUS: {
    01: "1900 654 321"
  }
};

Object.values(data).forEach(x => console.log(...Object.values(x)))

Вы также можете рекурсивно получить значения следующим образом:

var data = {
  US: {
    01: "202-555-0151",
    02: "202-555-0167",
    03: "202-555-0150"
  },
  CAD: {
    01: "613-555-0144",
    02: "613-555-0192",
    03: "613-555-0151"
  },
  AUS: {
    01: "1900 654 321"
  }
};

const flatten = (obj, a = []) => Object.values(obj)
  .reduce((r, c) => (typeof c == 'object' ? flatten(c, a) : r.push(c), r), a)

console.log(...flatten(data))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...