Использование for ... in chrome Пара значений ключей вложенного объекта консоли возвращает неопределенное значение - PullRequest
0 голосов
/ 07 февраля 2020

Я перебираю все объекты внутри другого объекта, пытаясь записать значение для одного и того же ключа в каждом из этих объектов. Я делаю это в консоли chrome, пытаясь получить URL-адреса изображений от огромного объекта, который содержит ~ 7500 объектов (я упоминаю об этом, потому что не уверен, является ли это проблемой c программирования или ограничением консоли).

Структура объекта выглядит следующим образом:

{ {obj1: {a:1, b:2, c:3,...}}, {obj2 {a:1, b:2, c:3,...}},... {obj7300: {a:1}, {b:2}, {c:3}} }

Как перебрать коллекцию и console.log () только для значения ключа c?

Я пробовал полдюжины вариантов

for (const obj in collection) {
     console.log(obj.c)
    }

, но ничего не регистрировалось. Вместо этого я получаю счет коллекции и неопределенный в одной строке.

Это ограничение консоли chrome или что, черт возьми, не так с моим синтаксисом?

Правка: добавление спецификаций c details - console.log (collection) выводит

{button_back: Object, button_back_corner: Object, button_cancel: Object, ... }

Любой заданный объект выводит

{name: "button_back", img: "resources/ui/button_back.png"}

Все, что я хочу сделать, - записать строковое значение для img для каждого объекта.

1 Ответ

0 голосов
/ 07 февраля 2020

В итоге я сделал двухэтапный процесс, чтобы все заработало. Мне все еще хотелось бы увидеть более изящное однострочное решение.

Сначала я сопоставил большой объект с массивом, а затем смог записывать элементы, как я изначально интуитивно знал.

var values = Object.keys(collection).map(function(key) {
    return RSX[key];
});

for (obj in values) {
console.log(`${obj.img}`)
}
...