Доступ к индексным ключам JSON, возвращаемым из laravel, с помощью функции groupBy ()

Как я могу получить доступ к первому объекту в ответе json?

В контроллере:

Model::with('some_relation')->get()->groupBy('id');
return response()->json(['transactions' => $transactions]);

С точки зрения ajax я получаю ответ json: например данные:

  {
    72: [{...},{...},{...}],
    75: [{...},{...}],
    80: [{...},{...},{...},{...}]
    }

Теперь, если я хочу получить доступ к первому объекту (72) в jquery, я не могу получить к нему доступ с помощью data[0] для получения первого массива. Я должен получить к нему доступ как к data[72]. Данные будут переменными, поэтому я не знаю, какой будет идентификатор.

Как я могу получить доступ к первому объекту?

Вы хотите сослаться на массив, на который ссылается ключ 72? Если да, то это будет Object.values(data)[0]

Taplar 22.08.2018 18:46

Ах, здорово, что работает :))). Потратил 2 часа на это не мог понять: ((. Если вы опубликуете это как ответ, я проголосую правильно. Спасибо.

Victordb 22.08.2018 18:52

Если я хочу перебрать массивы с помощью `$ .each (data, function (i, dataitem) {}`, когда я хочу получить доступ к i в a, если что-то вроде: if (i === 0) {} У меня есть та же проблема, что и у i - 72,75 или 80

Victordb 22.08.2018 18:59
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
3
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы хотите, чтобы они были сгруппированы, а не связаны по идентификатору, переиндексируйте коллекцию с помощью values ​​(). В Javascript нет ассоциативных массивов.

Это организует его в массив JSON вместо объекта JSON.

Model::with('some_relation')->get()->groupBy('id')->values();

Другие вопросы по теме