Показать сообщение отдельно
  #1 (permalink)  
Старый 18.07.2015, 17:03
Новичок на форуме
Отправить личное сообщение для Noin Посмотреть профиль Найти все сообщения от Noin
 
Регистрация: 18.07.2015
Сообщений: 2

Удаление элементов из массива
Добрый день!

Есть следующая ситуация:
При загрузке страницы получаем массив данных 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. Как такое вообще может быть и как это можно избежать?
Ответить с цитированием