簡體   English   中英

將值傳遞給數組時獲取空數據

[英]Getting empty data when I'm passing value to an array

我只是想知道我如何得到一個空對象,以及如何修復它。

tax1有16個對象

工資控制器

if (vm.period === 'Semi-Monthly') {
      for (var x = 0; x < vm.tax1.length; x++) {
        if (vm.tax1[x].eventType === 'sm') {
          vm.tax2[x] = vm.tax1[x];
        }
      }
    } else if( vm.period === 'Monthly'){
      for (var y = 0; y < vm.tax1.length; y++) {
        if (vm.tax1[y].eventType === 'm') {
          vm.tax2[y] = vm.tax1[y];
        }
      }
    }

輸出:

在此處輸入圖片說明

索引難以閱讀且容易出錯,可以考慮使用.push.filter

使用.push

vm.tax2 = [];
var eventType;

if (vm.period == 'Semi-Monthly') {
  eventType = 'sm';
}
else if( vm.period == 'Monthly') {
  eventType = 'm';
}

vm.tax1.forEach(function(item) {
  if (item.eventType == eventType) {
    vm.tax2.push(item);
  }
});

使用.filter

var eventType;

if (vm.period == 'Semi-Monthly') {
  eventType = 'sm';
}
else if( vm.period == 'Monthly') {
  eventType = 'm';
}

vm.tax2 = vm.tax1.filter(function(item) {
  return (item.eventType == eventType);
});

我這邊愚蠢的錯誤

解決方法

var x = 0;
var y = 0;

    if (vm.period === 'Semi-Monthly') {
      for ( x = 0; x < vm.tax1.length; x++) {
        if (vm.tax1[x].eventType === 'sm') {
          vm.tax2[y] = vm.tax1[x];
          y++;
        }
      }
    } else if( vm.period === 'Monthly'){
      for ( x = 0; x < vm.tax1.length; x++) {
        if (vm.tax1[x].eventType === 'm') {
          vm.tax2[y] = vm.tax1[x];
          y++;
        }
      }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM