通常の解決策は、オブジェクトをマップとして使用して、キー(ファイルの名前)とカウントの間のリンクを作成することです。
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++) {
ただし、他の方向では、配列の長さを1回だけ呼び出します(したがって、この場合は目立った方法ではなく、非常にわずかに高速です)。
この構成は、計算に長い反復の長さがあり、それを1回だけ実行したい場合によく使用されます。
の意味については、こちらi--
をお読みください。
i-->0
次のように読むことができます:
- 減分i
- デクリメント前のiの値が厳密に正であることを確認します(したがって、ループで使用されるiは正またはゼロです)