Из массива вытащить одинаковые элементы и записать в другой массив.
Создаётся массив по событию. По этому же событию происходит выборка из ранее созданного массива, чтобы записать результат в другой массив, но на выходе всегда получается пустой массив. Почему?
//функция вытащит нужное значение массива и перезапишет его
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, время: 21:50. |