Удаление элементов из массива
Добрый день!
Есть следующая ситуация: При загрузке страницы получаем массив данных myData. (получаю так: var myData = <?php echo json_encode($data, JSON_PRETTY_PRINT) ?>;) и есть функция: function setFilters(oldData) { var i = 0; var newItems = oldData; if (document.getElementById("isFreeFilter").checked){ for (i = (newItems.length - 1); i >= 0; i--) { if (newItems[i].isFree != '1') { newItems.splice(i, 1); } } } } html: <input id="isFreeFilter" type="checkbox" name='chb1' value="1" onChange="setFilters(myData)"> Собственно проблема заключается в удалении через splice элементов массива newItems. Как только выполняется строчка newItems.splice(i, 1);- нужный элемент удаляется не только из массива newItems, но и из myData. Как такое вообще может быть и как это можно избежать? |
Noin,
создание дубликата массива var newItems = oldData.slice(); |
Цитата:
Получается если делать просто var newItems = oldData;создаётся ссылка на исходный массив? |
Noin,
да. В учебнике на этом сайте довольно подробно про это написано. |
Часовой пояс GMT +3, время: 09:54. |