用angular.copy实现角度搜索

时间:2016-08-24 10:17:50

标签: javascript angularjs arrays filter

我有一个简单的按钮,当点击它时,它将过滤列表并返回过滤后的列表:

var originalArray = [{name: "A", number: 1},{name: "B", number: 2},....]

这是filter函数

function filterList(filterName, filterNumber) {
    var filteredList = angular.copy(originalArray);

    filteredList = filteredList.filter(function(item){
        return item.name === name
    }

    return filteredList
}

我的问题是我使用正确的方法来实现此功能吗?假设用户点击search按钮10000次!我有originalArray的10000份副本吗?

2 个答案:

答案 0 :(得分:1)

str评论时 - 您不需要复制数组,filter会返回一个只包含相应项目的新数组。

你应该看一下ngFilter - 那里有一个例子,看起来很像你在寻找什么,毫不费力。

答案 1 :(得分:1)

由于过滤器只返回一个数组,请改用它而不需要使用angular.copy

function filterList(filterName, filterNumber) {
    return originalArray.filter(function(item){
        return item.name === name
    }
}

如果您从视图中执行此操作,则表示有更好的方法可以执行此操作。 Angular already has built in tools for filtering.