列表正在过滤而不直接使用它

时间:2016-10-14 12:26:53

标签: jquery

这是下面的代码:

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过滤器&#34;数据&#34;变量,但我的QuickJV.FormOperations.List数据仍然被过滤,这是我的主要列表。

2 个答案:

答案 0 :(得分:2)

您需要克隆数组。否则它将是一个引用类型,因此所有更改都将反映在主数组中。

更改此

function getNthPrimeNumber(n){
  var count = 0;
  var num = 2;
  while(count++ != n){
    num = getNextPrimeNumber(num);
  }
  return num;
}

function getNextPrimeNumber(n){
  for(var i = ++n; i< n*n; i++){
    if(isPrime(i)) return i
  }
  return 0;
}

function isPrime(n){
  for(var i = 2; i< n; i++)
    if (n%i===0) 
      return false;
  return true;
}

console.log(getNthPrimeNumber(0))
console.log(getNthPrimeNumber(2))
console.log(getNthPrimeNumber(5))

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

答案 1 :(得分:0)

var Data = JSON.parse(JSON.stringify(QuickJV.FormOperations.List));