通常的解决方案是使用对象作为映射来建立键(文件名)和计数之间的链接:
var count = {};
for (var i=images.length; i-->0;) {
var key = images[i].split(".")[0]; // this makes 'Parrot' from 'Parrot.png'
if (count[key]) count[key]++;
else count[key] = 1;
}
然后你有,例如count['Parrot'] == 2
演示:http: //jsfiddle.net/tS6gY/
如果你执行 console.log(count),你会在控制台上看到这个(在大多数浏览器上是 Ctrl+Uppercase+i):
根据评论中的要求编辑 i--> :
for (var i=images.length; i-->0;) {
做的事情比
for (var i=0; i<images.length; i++) {
但在其他方向上,并且只调用数组长度的一次(因此速度非常快,在这种情况下不是以明显的方式)。
当您需要计算很长的迭代长度并且您只想执行一次时,通常会使用此构造。
关于的意思i--
,读到这里。
i-->0
可以读作:
- 递减我
- 检查减量前 i 的值是否严格为正(因此循环中使用的 i 为正或零)