wayheming
@wayheming

Как создать многомерный объект в цикле?

5b7ec95fe13d2490297815.jpeg
Здравствуйте нужно данные такого типа форматировать в многомерный массив объект. Я пришел из PHP и там данные такого типа спокойно в цикле
foreach ( $css_data->data as $size => $css_value ) {
     $selector = '#css-id-' .  $css_data->selector_id . ' ' . $css_data->css_class;
     $sorted_array[$size][$selector][$css_data->css_prop] = $css_value;
}

можно форматировать. Но в JS таким методом не получается так как я понял что нужно все внутренние объекты определять то есть [obj][obj] само не создаст. Вопрос в том как правильно в цикле сделать аналогично как в PHP.

5b7ec97bb0275711553343.jpeg
  • Вопрос задан
  • 773 просмотра
Решения вопроса 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Создаст.
var sorted = {};
sorted[size] = {};
sorted[size][selector] = {some: 'some'};

Просто в php у Вас в примере $sorted_array массив, а не объект. Был бы там объект, тоже номер бы не удался.
В js массив - это тоже объект, но "хитрый", это отдельный случай. В js нет ассоциативных массивов, как в php, но есть объекты, которые их отлично заменяют. Советую вот это прочитать, все станет на свои места: https://learn.javascript.ru/data-structures
Я сам после php пока до дыр эту тему не прочитал, не мог переключиться. Все логично, но логика отличается от той что в php.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект