не может l oop над массивом в javascript - PullRequest
1 голос
/ 29 января 2020

Эй, ребята, мне нужно знать, как l oop над массивом в javascript, я много раз использовал php, и я знаю, как перебирать массив с помощью foreach, но я не знаю, как его использовать с * 1011. *, я пытаюсь установить некоторые выбранные теги в выбранных входных данных вот foreach

montant.forEach(element => {
      $('#montant').empty()
           .append('<option value="'+element.id+'">'+element.designation+'</option>')
           .val(''+element.id+'').trigger('change')});

montant это значение, которое содержит массив с этими элементами

const montant = [
  {designation: 120000, id: 11},
  {designation: 30000, id: 12},
  {designation: 40000, id: 13}
]

с foreach что я использовал, я просто получить первый элемент

1 Ответ

4 голосов
/ 29 января 2020

Если montant - это массив, то вы все делаете правильно, используя forEach. Тем не менее, для каждой итерации l oop вы делаете это:

$('#montant').empty().append(...)

Таким образом, для каждого элемента вы очищаете #montant (который, я предполагаю, равен select), так что, в конце концов, ваш выбор имеет только один option, последний.

Я думаю, вы должны использовать empty() до l oop и trigger после этого обработчик событий не будет вызываться для каждого элемента массива:

const $montant = $('#montant');
$montant.empty()
montant.forEach(element => $montant.append(...));
$montant.trigger('change');

Теперь ваш select должен быть правильно заполнен.

...