@R0_none

Как обратится к третьему по счёту ключу объекта, если ты не можешь предсказать какое будет у ключа имя?

в функцию передаётся объект
каждый раз у него разные не предсказуемые ключи и в этих ключах содержатся массивы
нужно обратиться к любому одному элементу масива скрывающемуся за ключём объекта.

допустим
const obj = {
a: [A, B, C],
b: [G, D, E],
c: [W, V, J],
}

хочу обратиться к ключу b и элементу V

return obj[3][1]
так не работает. а как надо?
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
web_Developer_Victor
@web_Developer_Victor
Что такое google?
Если я правильно понял. Код продеться по всем ключам.
const obj = {};

for (const key of object) {
	if (object.hasOwnProperty(key)) {
		const thirdElement = object[key][2];
	}
}


Если нужен только 1 случайный, то
const obj = {};
const values = Object.values(obj);
const value = values[0]; // или сразу Object.values(obj)[0]

if (value) {
	const thirdElement = value[2];
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer (Java/Node.js/Angular)
Можете сделать Object.values(inputObject), получите массив, можете перебрать его и сделать проверку на isArray, если условие верное, то зайдите внутрь этого элемента-массива и возьмите то, что вам надо
Ответ написан
Stalker_RED
@Stalker_RED
Object.keys() вернет массив с ключами объекта.

const data = {
  'hello': 42,
  'world': 100,
  'foo': 'bar',
};

const keys = Object.keys(data);
console.log(...keys); // -> hello world foo
console.log(keys[1]); // -> world

// также через for ... in можно перебрать перечислимые свойства

for (let key in data) {
  console.log(key, data[key]); // -> hello 42
                               // -> world 100
                               // -> foo bar
}


Также можно сделать Object.keys(data).forEach(...) или Object.keys(data)[2]
Также см. Object.entries() который возвращает массивы, где содержится ключ и его значение.
Ответ написан
Aetae
@Aetae
Тлен
Нихрена не понятно, но допустим так:
function getRandomAtKey(object, keyIndex = 2) {
  for (const key in object) if(--keyIndex < 0) {
    const arr = object[key];
    return arr[Math.floor(Math.random() * arr.length)];
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы