栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JS搜索对象值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JS搜索对象值

像这样:

var objects = [  {    "foo" : "bar",    "bar" : "sit"  },  {    "foo" : "lorem",    "bar" : "ipsum"  },  {    "foo" : "dolor",    "bar" : "amet"  }];var results = [];var toSearch = "lo";for(var i=0; i<objects.length; i++) {  for(key in objects[i]) {    if(objects[i][key].indexOf(toSearch)!=-1) {      results.push(objects[i]);    }  }}

结果数组将包含所有匹配的对象。

如果搜索“ lo”,结果将类似于:

[{ foo="lorem", bar="ipsum"}, { foo="dolor", bar="amet"}]

新版本-添加了修整代码,以确保结果集中没有重复的代码。

function trimString(s) {  var l=0, r=s.length -1;  while(l < s.length && s[l] == ' ') l++;  while(r > l && s[r] == ' ') r-=1;  return s.substring(l, r+1);}function compareObjects(o1, o2) {  var k = '';  for(k in o1) if(o1[k] != o2[k]) return false;  for(k in o2) if(o1[k] != o2[k]) return false;  return true;}function itemExists(haystack, needle) {  for(var i=0; i<haystack.length; i++) if(compareObjects(haystack[i], needle)) return true;  return false;}var objects = [  {    "foo" : "bar",    "bar" : "sit"  },  {    "foo" : "lorem",    "bar" : "ipsum"  },  {    "foo" : "dolor blor",    "bar" : "amet blo"  }];function searchFor(toSearch) {  var results = [];  toSearch = trimString(toSearch); // trim it  for(var i=0; i<objects.length; i++) {    for(var key in objects[i]) {      if(objects[i][key].indexOf(toSearch)!=-1) {        if(!itemExists(results, objects[i])) results.push(objects[i]);      }    }  }  return results;}console.log(searchFor('lo '));


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/432504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号