Из массива вытащить одинаковые элементы и записать в другой массив.
Создаётся массив по событию. По этому же событию происходит выборка из ранее созданного массива, чтобы записать результат в другой массив, но на выходе всегда получается пустой массив. Почему?
//функция вытащит нужное значение массива и перезапишет его 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); |
Цитата:
|
Да. Это сётчик. Он правильный.
|
.filter() тоже дал пустой массив. Не понимаю в чём дело. getName - строка, obj[i] - строка, строку со строкой сравниваю.
|
Ruslan_Berebnev,
нужен полноценный макет |
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,
а кнопочку посмотреть? [HTML run][/HTML] |
А как? :-?
|
Понял)
|
Mess4me,
:victory: |
Часовой пояс GMT +3, время: 17:36. |