Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.11.2015, 18:25
Интересующийся
Отправить личное сообщение для Ruslan_Berebnev Посмотреть профиль Найти все сообщения от Ruslan_Berebnev
 
Регистрация: 12.11.2015
Сообщений: 10

Из массива вытащить одинаковые элементы и записать в другой массив.
Создаётся массив по событию. По этому же событию происходит выборка из ранее созданного массива, чтобы записать результат в другой массив, но на выходе всегда получается пустой массив. Почему?
//функция вытащит нужное значение массива и перезапишет его  
function groupArray(arr, val) {
    var object = [];
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] !== val) continue;
      object.push(arr[i]);
    }
    return object;
  }

  var objects, deleteAll, getName, obj = [];
//по событию создаётся массив, а потом используется выборка для создания
//ещё одного массива с одинаковыми значениями
  deleteAll = function (e) {
    if (e.target.className !== 'delete-all') return;
    getName = e.target.parentElement.querySelector('.val-names').innerHTML;
    for (var i = 1; i <= getCookie('COUNT'); i++) obj.push(getCookie('ITEM_NAME_' + i));
    objects = groupArray(obj, getName);
    console.log(objects); // результат []
  }

  window.addEventListener('click', deleteAll);

Последний раз редактировалось Ruslan_Berebnev, 12.11.2015 в 18:35.
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2015, 18:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от Ruslan_Berebnev
getCookie('COUNT')
это число проверяли?
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2015, 19:05
Интересующийся
Отправить личное сообщение для Ruslan_Berebnev Посмотреть профиль Найти все сообщения от Ruslan_Berebnev
 
Регистрация: 12.11.2015
Сообщений: 10

Да. Это сётчик. Он правильный.
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2015, 19:06
Интересующийся
Отправить личное сообщение для Ruslan_Berebnev Посмотреть профиль Найти все сообщения от Ruslan_Berebnev
 
Регистрация: 12.11.2015
Сообщений: 10

.filter() тоже дал пустой массив. Не понимаю в чём дело. getName - строка, obj[i] - строка, строку со строкой сравниваю.
Ответить с цитированием
  #5 (permalink)  
Старый 12.11.2015, 19:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Ruslan_Berebnev,
нужен полноценный макет
Ответить с цитированием
  #6 (permalink)  
Старый 12.11.2015, 19:39
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Ruslan_Berebnev, код без функций getCookie('COUNT') рабочий , так что проблема в этой функции
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>trigger demo</title>

</head>
<body>

<button class="delete-all">Button #1</button>
 <div class="val-names">ITEM_NAME_2</div>

<script>
    //функция вытащит нужное значение массива и перезапишет его
    function groupArray(arr, val) {
        var object = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] !== val) continue;
            object.push(arr[i]);
        }
        return object;
    }

    var objects, deleteAll, getName, obj = [];
    //по событию создаётся массив, а потом используется выборка для создания
    //ещё одного массива с одинаковыми значениями
    deleteAll = function (e) {
        if (e.target.className !== 'delete-all') return;
        getName = e.target.parentElement.querySelector('.val-names').innerHTML;
        for (var i = 1; i <= 3; i++) obj.push( 'ITEM_NAME_' + i);
        objects = groupArray(obj, getName);
        alert(objects);
    }

    window.addEventListener('click', deleteAll);

</script>

</body>
</html>

Последний раз редактировалось Mess4me, 12.11.2015 в 19:49.
Ответить с цитированием
  #7 (permalink)  
Старый 12.11.2015, 19:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Mess4me,
а кнопочку посмотреть?
[HTML run][/HTML]
Ответить с цитированием
  #8 (permalink)  
Старый 12.11.2015, 19:46
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

А как?
Ответить с цитированием
  #9 (permalink)  
Старый 12.11.2015, 19:47
Профессор
Отправить личное сообщение для Mess4me Посмотреть профиль Найти все сообщения от Mess4me
 
Регистрация: 03.11.2014
Сообщений: 263

Понял)
Ответить с цитированием
  #10 (permalink)  
Старый 12.11.2015, 19:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Mess4me,
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать все элементы массива уникальными exec Общие вопросы Javascript 43 25.12.2015 01:14
Загрузить элементы документа с другой страницы alexrussia Events/DOM/Window 10 25.03.2011 10:17
Пустые элементы массива lammeR Общие вопросы Javascript 5 25.05.2010 02:59
Как удалить повторные элементы из массива? YISHIMITSY Общие вопросы Javascript 1 04.05.2010 00:04
добавить элементы в ассоциативный массив noer Элементы интерфейса 7 14.05.2009 10:41