迭代对象并找到编号的键

Iterate object and find numbered keys

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

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 可以是任何给定的数字。我正在尝试获取其中包含 "image" 的所有键并将其推送到数组中。这样结果应该如下所示:

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

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

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

Object.keys(myObj.in.here)

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

这是一个使用 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);
    }
}