【问题标题】:Implementing search in angular with angular.copy使用 angular.copy 实现 angular 搜索
【发布时间】:2016-08-24 10:17:50
【问题描述】:

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

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 个副本吗?

【问题讨论】:

  • 您根本不需要复制它。通过使用filter,您将获得一个新数组。
  • 您不需要在原始数组上使用 angular.copy。 .filter() 将返回一个新的。
  • 有人把它的评论写成答案

标签: javascript angularjs arrays filter


【解决方案1】:

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

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

也就是说,如果您从视图中执行此操作,则有更好的方法来执行此操作。 Angular already has built in tools for filtering.

【讨论】:

    【解决方案2】:

    正如str 评论的那样 - 您不需要复制数组,filter 会返回一个新数组,其中仅包含适当的项目。

    您应该看看ngFilter - 那里有一个示例,它看起来非常符合您的要求,毫不费力。

    【讨论】:

      猜你喜欢
      • 2013-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      相关资源
      最近更新 更多