迭代对象并找到编号的键

时间:2015-10-13 10:43:28

标签: javascript key

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

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' ...]

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

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分:0)

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

Object.keys(myObj.in.here)

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