javascript - AngularJS/Javascript : Find a string match in a nested object

标签 javascript angularjs

我有一个复杂的对象(用户对象),其中包含嵌套数组和嵌套对象。

我有一个相对复杂的搜索过滤器(确定返回哪些项目的复选框以及搜索输入)。

目前我搜索这样的对象:

for(var key in item){
  if(item[key] && item[key].length && String(item[key]).toLowerCase().indexOf($rootScope.filt.searchFilter.toLowerCase()) !== -1){
    realSave = true; 
  }
}

但是,这仅适用于项目中的第一层对象;我还需要在对象中搜索对象。

我该怎么做?这是不是比上面的方法更简单呢? (请注意,我不能只使用 ng-repeat="item in items | searchFilter" 因为这还需要解析复选框并相应地返回值。

最佳答案

尝试

realSave = (JSON.stringify(item).indexOf($rootScope.filt.searchFilter.toLowerCase()) !== -1)

(很长的一行,向右滚动)

它将把您的整个对象转换为单个字符串,然后您可以在其中的任何位置搜索您要查找的子字符串。

关于javascript - AngularJS/Javascript : Find a string match in a nested object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37725875/

相关文章:

javascript - Google Places Autocomplete,如何处理地址中的单元号

javascript - 如何在html中的 Angular js中添加日期年份

javascript - Angularjs:-在加载之前暂时删除双花括号符号的显示

javascript - slider 中的 Angular JS 过滤器

javascript - 在开发工具中追踪由 "other"发起的依赖

javascript - 在 node-webkit 中打印没有 "print dialogue"

javascript - 为什么 Javascript 库有对数组方法(push、slice 等)的本地引用?

javascript - 有条件地在 Angular Directive(指令)中加载模板

javascript - JQuery UI - 如何从列表框进行多个切换?

javascript - Flash 消息在 angularJS 中不起作用