javascript - 使用前缀值和通配符查找对象

标签 javascript jquery object lodash

我有一个页面生成 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/

相关文章:

javascript - 使用 Airtable API 列出记录

javascript - $.post 和 $.get 只允许更改标题,不记录日志?

javascript - UI 路由器并链接到其他页面上的 anchor 标记?

jquery - 无法设置 carouFredSel slider 的持续时间

javascript - Google Analytics 仪表板 AJAX 函数未获取值

javascript - 如何在数组 javascript 中找到匹配字符串?

java - java的compareTo()方法表现得很奇怪

javascript - AngularJS - 未知提供者

javascript - 将对象分配给数组,然后根据位置从数组中调用它

javascript - 如何从具有多个键的json对象收集数据并将所有值推送到单个键:value array