Javascript for循环直到 - 多个条件

Dar*_*ney 13 javascript for-loop

我正在使用javascript,使用正则表达式从HTML代码中抓取图像.

我希望循环运行,直到脚本找不到更多图像或直到它达到12.

我正在尝试以下但不工作:

var imgs = d.getElementsByTagName('img'), found = [];
for(var i=0,img; ((img = imgs[i]) || ( $i < 13)); i++)
Run Code Online (Sandbox Code Playgroud)

这可能吗?我在正确的路线上吗?

相当新的JavaScript,但尝试!

I H*_*azy 15

你应该使用&&而不是||.另外,$i应该是i.

for(var i=0, img; (img = imgs[i]) && (i < 12); i++)
     found.push(img);
Run Code Online (Sandbox Code Playgroud)


Aln*_*tak 5

假设您想要found包含前 12 个:

var imgs = d.getElementsByTagName('img');
var found = [].slice.call(imgs, 0, 12);
Run Code Online (Sandbox Code Playgroud)

您必须使用[].slice.call(imgs, ...)而不是imgs.slice()因为它imgs只是一个伪数组,而不是一个真正的数组。

写作的另一种选择[].sliceArray.prototype.slice

如果您想在循环内执行其他操作,只需使用上面创建的数组即可确保仅处理前 12 个图像:

for (var i = 0, n = found.length; i < n; ++i) {
    // do something with found[i];
}
Run Code Online (Sandbox Code Playgroud)