Как сбросить список

#javascript #jquery

#javascript #jquery

Вопрос:

Это может быть глупый вопрос, но все же я сталкиваюсь с проблемой с этим.

   var eformDetailIds = []; 


eformDetailIds=$("[name=eform_id]").map(function(){ return $(this).val() }).get();  
  

это код, который я написал в функции js и вызываю эту функцию при нажатии кнопки.

Но проблема в том, что список eformDetailIds также содержит предыдущие значения. не могли бы вы, пожалуйста, как установить этот пустой список для каждого вызова функции? Заранее спасибо.

Комментарии:

1. Извините.. Я должен получать новый список каждый раз при вызове этой функции. это то, что я ищу.

2. Этот код, который у вас есть, вернет новый массив со всеми значениями, записанными в данный момент во всех элементах формы, имеющих имя eform_id — объясните, что вы хотите вместо этого, и мы постараемся направить вас туда.

3. Если это поможет, вот живой тестовый пример, поэтому не стесняйтесь изменять его и использовать, чтобы продемонстрировать, какова ваша цель..

Ответ №1:

Просто установите длину равной нулю:

 eformDetailIds.length = 0;
  

Или выделить новый массив:

 eformDetailIds = [];
  

Теперь, с учетом сказанного, согласно опубликованному вами коду, весь массив определенно будет заменяться каждый раз, когда выполняется вызов «.map()». Другими словами, предыдущие значения не останутся в массиве. Возможно, вам следует опубликовать больше, чтобы объяснить, что заставляет вас думать, что старые значения остаются.

Комментарии:

1. Но я уже использовал второй вариант var eformDetailIds = []; но все еще не работает. пожалуйста, предложите мне

2. @Satya вы опубликовали недостаточно информации, чтобы понять, в чем проблема. Когда вы полностью переназначаете значение подобным образом, предыдущие значения не останутся в массиве ; фактически это совершенно новый массив.

3. Привет, остроумный.. Ответ, который вы мне предоставили, правильный и должен работать. Но я обнаружил, что проблема не в этом. большое вам спасибо

Ответ №2:

Не забывайте, что вы всегда можете сбросить массив таким образом:

 myArray = new Array();
  

Это довольно просто.

Комментарии:

1. Этот ответ является истинным утверждением, но обратите внимание, что x = [] и x = new Array() являются точно такими же.