.splice不是一个功能

时间:2015-09-25 09:48:32

标签: angularjs

我有这个过滤器,我有错误过滤[i] .splice不是函数

 .filter('tsFilter', function() {
  return function(model, filter) {
    var filtered = [];
    if (model != null) {
      for (var i = 0; i < model.length; i++) {
        filtered[i] = model[i];
      }
    }        

    for (i = 0; i < filtered.length; i++) {
      if (filtered[i].List.length == 0)
        filtered[i].splice(i, 1);
    }
    return filtered;
  };
})

为什么我有这个错误?怎么解决?

2 个答案:

答案 0 :(得分:1)

看起来你想要使用:

for (i = 0; i < filtered.length; i++) {
  if (filtered[i].List.length == 0)
    filtered.splice(i, 1);
}

虽然从迭代中删除数组中的元素不是一个好主意。

答案 1 :(得分:1)

您需要更新

for (i = 0; i < filtered.length; i++) {
  if (filtered[i].List.length == 0)
    filtered.splice(i, 1);  //updated
}

希望这会帮助你。