2015-09-25 289 views
0

我有这样的过滤器,我已经过滤的错误[I] .splice不是一个函数.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; 
    }; 
}) 

为什么我有这样的错误?如何解决?

+1

Splice是一个可用于数组的JavaScript函数。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice 检查过滤的数据[i] –

回答

1

在这里,你必须更新

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

希望这将帮助你。

1

它看起来像你想使用:

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

虽然这不是一个好主意,请从数组你迭代的元素。

+0

我知道这是一个旧的答案,但你会介意说明为什么? – Jason