【问题标题】:Iterate object and find numbered keys迭代对象并找到编号的键
【发布时间】:2015-10-13 10:43:28
【问题描述】:

我有一个看起来像这样的对象:

var myObj = {
some : {},
stuff : 123,
in : {
    here : {
       variables : 'stuffety stuff',
       variables : 'stuffety stuff',
       variables : 'stuffety stuff',
       variables : 'stuffety stuff',
       image1 : 'img1.jpg',
       image2 : 'img2.jpg',
       image3 : 'img3.jpg',
       imageN : 'imgN.jpg',
       ...
       variables : 'stuffety stuff',
       variables : 'stuffety stuff',
    }
  }
}

其中 N 可以是任何给定的数字。我正在尝试获取其中包含“图像”的所有键并将其推入数组中。所以结果应该是这样的:

图片['img1.jpg','img2.jpg','img3.jpg','imgN.jpg'...]

当我不知道它们有多少时,我如何找到这些编号的键。它们也可以是无序的。 (例如缺少image2)

【问题讨论】:

  • 您来这里是因为您希望我们为您实施它?
  • 或多或少。我正在寻找一个优雅的实现。
  • 嗯,这是一个帮助开发人员不要免费完成工作的社区。​​span>
  • 有什么问题?我不知道如何拿到这些钥匙。我不会用这段代码来付房租 0_o
  • 那么问一个特定的问题。将您的任务拆分为子任务,并一个接一个地单独解决。 1) 获取所有键 2) 查找与模式匹配的所有键 3) 使用来自 #2 的键从原始对象中检索数据。这些是基本步骤。

标签: javascript key


【解决方案1】:

这是一个使用for 循环的简单解决方案。原代码见this question

var extracted = [];
for (var p in myObj.xin.here) {
    if (myObj.xin.here.hasOwnProperty(p) && p.indexOf("image") > -1) {
        extracted.push(p);
    }
}

【讨论】:

  • 把它包装成一个函数,你可以传入任何你想要的参数。
【解决方案2】:

您可以使用 Object 方法 Object.keys() 来获取对象内部的键。

Object.keys(myObj.in.here)

上面的代码会给你预期的结果。

【讨论】:

  • 对不起,我编辑了这个问题。这些图像介于许多其他键之间
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2021-12-07
  • 1970-01-01
  • 2020-05-04
  • 2019-01-20
  • 1970-01-01
相关资源
最近更新 更多