Список фильтруется без непосредственного использования

Это код ниже:

OnChangePaymentMode: function (mode) {
    var Data = [];
    Data = QuickJV.FormOperations.List;
    if (Data != null) {
        if (mode != "All") {
            for (var i = 0; i < Data.receiptList.length; i++) {
                Data.receiptList[i].paymentModeList = Data.receiptList[i].paymentModeList.filter(function (el, i) {
                    return (el.paymentMode == mode);
                });
            }
            for (var i = 0; i < Data.paymentList.length; i++) {
                Data.paymentList[i].paymentModeList = Data.paymentList[i].paymentModeList.filter(function (el, i) {
                    return (el.paymentMode == mode);
                });
            }
        }
        QuickJV.FormOperations.CreateRowDataForReceiptAndPayment(Data);
    }
}

Я использую фильтр jquery в переменной «Данные», но все же мои QuickJV.FormOperations.Listданные фильтруются, что является моим основным списком.

jquery,

2

Ответов: 2


0 принят
var Data = JSON.parse(JSON.stringify(QuickJV.FormOperations.List));

2

Вам нужно клонировать массив. В противном случае это будет ссылочный тип, поэтому все изменения будут отражены в основном массиве.

Изменить это

var Data = [];
Data = QuickJV.FormOperations.List;

к

var Data = [];
Data = QuickJV.slice();
Data=Data.FormOperations.List;
JQuery,
Похожие вопросы