在Javascript中,给定值,从Object文本中查找值并过滤特定值
In Javascript, given value, find value and filter on the specific value from Object literal
我应该注意,我不是Javascript/ajax/jquery的最佳用户。无论如何,在检查对象时,我需要一些帮助,看看它是否包含基于对象文字的特定值。我正在为一个项目使用JavaScriptInfoVisToolkit。我使用的库可视化不是使用真正的json对象,而是更多的JavaScript对象文本。我很难判断我的对象中是否存在项目。
在对代码进行更改后,我尝试了提供的最佳答案,但是,它似乎无法正常工作。
我也试过。。在循环中,我知道这是令人不快的(加上我也没有像预期的那样让它工作)
以下是对象及其结构:
myObj = {
id: "190_0",
name: "Pearl Jam",
children: [{
id: "306208_1",
name: "Pearl Jam & Cypress Hill",
children: [{
id: "84_2",
name: "Cypress Hill",
children: []
},
{
id: "306208_3",
name: "Alex"
}]
}]
};
[编辑]在这个例子中,我试图找到"亚历克斯",但我所尝试的一切都失败了。我需要它来查看整个结构,所以我不能有硬编码的选择(myObj.children[0].name….)
我的项目的最终目标是能够搜索具有特定技能的用户。例如:
我想搜索C++的技能集,然后显示C++的所有子项(即人名)。[/EDIT]
提前感谢您的帮助。
澄清后,这里有一种递归的方法来检查:
以下是一个小型实现
function contains(obj,what){
if(obj === what){
return true;
}
if(typeof obj!== "object" || obj === null){
return false;
}
for(var i in obj){
if(contains(obj[i],what)){
return true;
}
}
return false;
}
这适用于所有新的和旧的浏览器,并且没有依赖关系。再次注释:
function contains(obj,what){
if(obj === what){ // if the object is what we're looking for - return it
return true;
}
// if it's not what we're looking for and it's not an object return it
if(typeof obj!== "object" || obj === null){
return false;
}
for(var i in obj){ // check if it's any of its properties
if(contains(obj[i],what)){
return true; // found it in a child
}
}
return false; // did not find it anywhere.
}
此外,强制性的一行:
function contains(obj,what){
return (obj === what)||((typeof obj === "object" && obj !== null) && Object.keys(obj).some(function(el){return contains(obj[el],what);}));
}
相关文章:
- GTM每隔5秒在页面上查找文本
- jquery在元素中查找文本节点,并使用标记进行连接和包装
- 使用jquery或JS查找文本区域内的所有单词位置
- 使用最接近查找文本输入的JQuery问题
- Greasemonkey查找文本问题
- 使用Jquery在下拉菜单中查找文本,并将其设置为“选定”
- 当
不在 前面时查找文本 - 查找文本区域的可见高度
- 如何在 svg 中查找文本的坐标
- 查找文本并将其删除 jquery
- 查找文本将占用多少行
- jQuery查找文本并更改大小
- 使用 javascript 查找文本中 HTML 标签的位置,最好不使用正则表达式
- 如何使用jquery在省略链接的同时查找文本
- jQuery 遍历和查找文本框
- 使用数组内容查找文本以进行替换
- 使用 jquery 在与可单击元素相同的行中查找文本框的值
- 如何使用c#在selenium webdriver ie中实现网页中的查找文本
- 在JavaScript中查找文本字符串
- ACE编辑器查找文本,选择行并替换文本