是否可以找到所有具有特殊模式的已定义Javascript对象?

是否可以找到所有具有特殊模式的已定义Javascript对象?,javascript,jquery,Javascript,Jquery,在JavaScript(或库JQuery)中是否可以找到具有给定模式的所有(全局)对象 例如: objekt_1 objekt_2 //Javascript objects function find_objects() { return ....; //return all objects that start with "object"-prefix } 对 javascript中的全局变量实际上是窗口对象的元素,因此可以执行以下操作: for(var i in window)

在JavaScript(或库JQuery)中是否可以找到具有给定模式的所有(全局)对象

例如:

objekt_1
objekt_2 //Javascript objects

function find_objects() {
     return ....; //return all objects that start with "object"-prefix
}

javascript中的全局变量实际上是窗口对象的元素,因此可以执行以下操作:

for(var i in window) {
    var ret = [];
    if(i.substr(0,7) == 'object_') ret.push(i);
    return ret;
}

javascript中的全局变量实际上是窗口对象的元素,因此可以执行以下操作:

for(var i in window) {
    var ret = [];
    if(i.substr(0,7) == 'object_') ret.push(i);
    return ret;
}

因为它们是全局对象,所以它们是全局对象的属性,通过浏览器上的
窗口
变量引用全局对象。因此,您可以通过
for in
循环找到它们:

var key;
for (key in window) {
    // Examine `key` here, it's a string; if it matches, do
    // something with `window[key]`, which is the value for that variable
}

因为它们是全局对象,所以它们是全局对象的属性,通过浏览器上的
窗口
变量引用全局对象。因此,您可以通过
for in
循环找到它们:

var key;
for (key in window) {
    // Examine `key` here, it's a string; if it matches, do
    // something with `window[key]`, which is the value for that variable
}

对。如果它们是全局的,则它们存储在
窗口
对象中。然后您只需过滤它们:

function find_objects() {
    var objs = [];
    for (var k in window) {
        var cVariable = window[k];
        if (/^objekt/.test(k) && typeof cVariable === "object") {
             objs.push(cVariable);
        }
    }
    return objs;
}
演示:


是的。如果它们是全局的,则它们存储在
窗口
对象中。然后您只需过滤它们:

function find_objects() {
    var objs = [];
    for (var k in window) {
        var cVariable = window[k];
        if (/^objekt/.test(k) && typeof cVariable === "object") {
             objs.push(cVariable);
        }
    }
    return objs;
}
演示:


为什么要这样做?如果你创建了这些对象,将它们放在一个数组中会更有意义。请看这个@mpm非常好的考虑因素。我之所以想要它,是因为我无法控制所有的javascript代码。你为什么要这样做?如果你创建了这些对象,将它们放在一个数组中会更有意义。请看这个@mpm非常好的考虑因素。我想要它,因为我不能控制所有的javascript代码。