获取共享类似属性名称的javascript对象内的元素

时间:2014-05-05 18:21:46

标签: javascript object extjs properties extjs4.2

我想知道是否有办法 提取/搜索 包含来自javascript对象的类似property的元素。

更具体地说,如果我有以下object

现场演示: http://jsfiddle.net/oscarj24/sMWUL/

var enrolled = {};

enrolled['enrolled/ruby/S1234'] = {
    course: {
        id: 'P01',
        desc: 'Ruby course'
    },
    student: {
        id: 'S1234',
        name: 'John Doe'
    }
};
enrolled['enrolled/php/S1234'] = {
    course: {
        id: 'P02',
        desc: 'PHP course'
    },
    student: {
        id: 'S1234',
        name: 'Foo Bar'
    }
};
enrolled['enrolled/java/S6666'] = {
    course: {
        id: 'P03',
        desc: 'Java course'
    },
    student: {
        id: 'S6666',
        name: 'Bill Gates'
    }
};

然后我会在enrolled对象中有一些类似的 属性 (就像那些共享 S1234 的对象一样 string最后)。


所以,我的问题是:

如何在 属性 中提取string相似或重合的元素?

我看起来javascript对象非常有限,我唯一能做的就是检查属性是否存在:obj.hasOwnProperty(prop) (但这不是我要找的)< / em>的。有没有办法使用regex检查这个? (只是说,似乎不可能)。

要知道,我正在使用ExtJS 4.2,但我找不到能够在API文档中找到我需要的东西(如果错误,请纠正我)。< / p>

2 个答案:

答案 0 :(得分:1)

你可以在每个循环中使用a来查看你在搜索的内容是否在字符串中。

for (key in enrolled)
{
     if(key.indexOf('S1234') > -1)
     {      
         console.log(key);
         //Perform your actions here
     }                 
}

在这里小提琴:http://jsfiddle.net/brettwlutz/sMWUL/2/

答案 1 :(得分:0)

怎么样?

for(var prop in enrolled){
console.log(prop);
//check if prop matches string regex.
}