Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 218

Получение значений из многомерного массива

01.01.2016, 03:56. Показов 5205. Ответов 7

Студворк — интернет-сервис помощи студентам
С наступившим Новым годом, Форумчане

Есть многомерный массив пример снизу, как по запросу переменной $var (которая в зависимости от запроса равна ключу массива вида car1, car2, car3) получить все элементы этого ключа массива?

Массив
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var auto = {
        car2: {
            audi: {
                 name: 'Ауди',
             path: 'Карта Ауди'
                 },
        vw: {
                 name: 'Фольцваген',
             path: 'Карта Фольцваген'
                 }    
                 },
        
     car3: {
            bmw: {
                 name: 'BMW',
             path: 'Карта BMW'
                 },
        mb: {
                 name: 'Район Мерседес',
             path: 'Карта Мерседес'
                 }    
                 }   
              
};
Допустим пользователь кликнул по значению $var=car3, как получить все значения данного элемента.
Понял, что нужно перебрать массив, но вывести что-то не получается.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2016, 03:56
Ответы с готовыми решениями:

Создание многомерного массива в JS
можно ли создать в JS массив без муторного описания типа: price_array = new Array(1,2); price_array = new Array(1,2); price_array =...

Пример многомерного массива
Здравствуйте, хотел разобрать пример многомерного массива <!Пример использования многомерного массива> <html> ...

Создание многомерного массива
Как можно создать подобный многомерный массив (указанный в коде) на JavaScript???? //php-code $wid = array(121,126,131,138,144,154); ...

7
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
01.01.2016, 04:30
Лучший ответ Сообщение было отмечено Compaq как решение

Решение

Compaq, и вас с Новым годом.
Цитата Сообщение от Compaq Посмотреть сообщение
как получить все значения
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function getPropVal(o) {
  for (var k in o) {
    if (o.hasOwnProperty(k)) {
      if (typeof o[k] === 'object') {
        getPropVal(o[k]);
      } else {
        console.log(o[k]);
      }
    }
  }
}
var $var = 'car3';
getPropVal(auto[$var]);
/*
BMW
Карта BMW
Район Мерседес
Карта Мерседес
*/
1
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 218
01.01.2016, 04:46  [ТС]
Спасибо большое,

А не подскажите, как вставить эти значения в html?

Просто заменив на
JavaScript
1
$('#map').html(o[k]);
Выводит почему-то не те значения "Карта Мерседес" вместо
/*
BMW
Карта BMW
Район Мерседес
Карта Мерседес
*/
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
01.01.2016, 05:09
Лучший ответ Сообщение было отмечено Compaq как решение

Решение

Compaq, метод html() заменяет всё содержимое элемента новыми данными содержащими html-разметку (или получает, если аргумент методу не передаётся). Для добавления к существующим данным, надо использовать методы append(), prepend() и т.д.
Пример в песочнице
1
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 218
01.01.2016, 05:33  [ТС]
Спасибо большое за помощь,

А как вывести определенное значение ключа car3, допустим bmw->name. Если бы я заранее знал значение car, допустим car3, то это выглядело бы как
JavaScript
1
auto.car3.bmw.name
А как вместо bmw - вставить переменную $var?

Получается вот так?
auto.[$var].bmw.name
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
01.01.2016, 05:41
Цитата Сообщение от Compaq Посмотреть сообщение
вместо bmw - вставить переменную $var
JavaScript
1
2
var $var = 'bmw';
console.log( auto.car3[$var].name );
1
2 / 2 / 0
Регистрация: 14.02.2013
Сообщений: 218
01.01.2016, 05:49  [ТС]
Спасибо гигантское, выручили и можно последний вопрос по этой теме

Если раньше я вот так перебирал массив, то теперь с переменной $var

JavaScript
1
2
for (var car in auto[car2}) {
  var obj = rr.path(car[car2].path);
Надо заменить на
JavaScript
1
2
for (var car in auto[$var}) {
  var obj = rr.path(car[$var].path);
Где
JavaScript
1
$var ='car2';
Еще раз с Наступившим!
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
01.01.2016, 06:11
Compaq, Я понимаю, что первое число года, но код, который вы сейчас показали, я бы не понял и в любое другое время К тому же, в этих двух строчках - несколько синтаксических ошибок.

Записи ниже равнозначны и выведут один и тот же результат:

JavaScript
1
2
3
4
5
6
7
8
9
var obj = {
  key1: {
    key2: '2016'
  }
};
console.log(obj.key1.key2); // 2016
console.log(obj['key1']['key2']); // 2016
console.log(obj['key1'].key2); // 2016
console.log(obj.key1['key2']); // 2016
Добавлено через 1 минуту
Цитата Сообщение от Compaq Посмотреть сообщение
Еще раз с Наступившим!
И вас так же. Пора бы поспать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.01.2016, 06:11
Помогаю со студенческими работами здесь

Формирование многомерного массива
доброго времени суток хочу использовать плагин select2, пытаюсь перевести ответ с сервера к виду: }, { ...

Работа с данными многомерного массива
ПРОСВЕТИТЕ ПОЖАЛУЙСТА! var inf = , , , ]; $(document).ready(function(){

JavaScript!? Инициализация многомерного массива?
JavaScript, как правильно инициализировать многомерный массив? // var quest= , ] - это такой массив должен в итоге получиться ...

Перебор ассоциативного многомерного массива
Подскажите пож есть ли возможность перебрать многомерный ассоциативный массив внутри функции JS. Массив уже находится внутри функции. Может...

Передача многомерного массива через Ajax
Добрый день. Имеется форма с чекбоксами, ссылка на скрин ниже https://ibb.co/dpQtWT Код вывода чекбоксов <div...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru