我有一个页面生成 3 个带有前缀和数字的对象。
号码每次都会改变,但前缀将始终保留。
看起来像这样:
window.ctx8
window.ctx9
window.ctx10
在我的页面上,我有 3 个列表,每个列表对应于其中 1 个对象,我需要使用
查找该列表中所选项目的值window.["ctx" + ?NUMBER? ].selectedItems
如何遍历窗口对象并有效地找到这 3 个对象?
编辑:我无法控制这些对象的创建方式,它们是由应用程序创建的。
我尝试过这样的事情:
Object.keys(window).filter(x => _.startsWith(x, "ctx"))
但我不确定如何进一步过滤随机数
也许我可以进行长度比较,因为它通常是 0-99 之间的数字。
最佳答案
以数组形式获取三个属性的名称的一种方法如下:
var ctxNames = Object.keys(window).filter(function(v) { return /^ctx\d+$/.test(v) })
// ctxNames is now ["ctx8", "ctx9", "ctx10"]
即使用正则表达式来匹配“ctx”后跟一位或多位数字。
循环遍历 window
的所有属性并不需要很长时间,但如果您愿意,可以通过在 .filter 之前在变量中声明正则表达式来提高代码效率()
调用而不是在回调中创建新的正则表达式对象。
关于javascript - 使用前缀值和通配符查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43624419/