Получить имя и создать многомерный массив с помощью jQuery

у меня есть это

<input data-sector = "10" name = "people" value = "21">
<input data-sector = "10" name = "people" value = "22">
<input data-sector = "11" name = "people" value = "23">
<input data-sector = "11" name = "people" value = "24">
<input data-sector = "12" name = "people" value = "25">

и с jQuery мне нужно преобразовать это:

var json = {"10":[21,22], "11":[23,24], "12":[25]}

Я использую это, но не будет работать. Мне нужна помощь.

var code = [];
$('[name=people]').each(function () {
    var local = $(this);
    code[local.data('sector')].push.local.val();
});

Ваш json недействителен.

Serge 23.03.2022 00:08
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
2
1
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. push — это функция, вы должны вызывать ее с помощью ().
  2. code должен быть объектом, а не массивом.
  3. Если свойство объекта еще не создано, вам нужно создать его с пустым массивом, прежде чем вы сможете нажимать на него.

var code = {};

$('[name=people]').each(function() {
  var local = $(this);
  var sector = local.data('sector');
  if (!code[sector]) {
    code[sector] = [];
  }
  code[sector].push(local.val());
});

console.info(code);
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input data-sector = "10" name = "people" value = "21">
<input data-sector = "10" name = "people" value = "22">
<input data-sector = "11" name = "people" value = "23">
<input data-sector = "11" name = "people" value = "24">
<input data-sector = "12" name = "people" value = "25">

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