アイテムが存在する範囲のリストを得るスニペット

なんか知らんが混乱してるときにフラグを使ってごっちゃごちゃのコードを書いてしまっていたので、綺麗に書いたのをまとめておく。

//               0123456789*123456789*123456789*123456
var targetStr = "1000001111110111000001110100001111101";
targetStr = "0" + targetStr + "0";

var items = [];
for(var i=1; i<targetStr.length - 1; i++) {
	if (targetStr.charAt(i-1) == "0" && targetStr.charAt(i) == "1") {
		items.push({st:i-1, ed:0});
	}
}

var idx = 0;
for(var i=1; i<targetStr.length - 1; i++) {
	if (targetStr.charAt(i) == "1" && targetStr.charAt(i+1) == "0") {
		items[idx].ed = i-1;
		idx++;
	}
}

var out="";
for(var i=0; i<items.length; i++) {
	out+=items[i].st + "-" + items[i].ed + "\n";
}
WScript.Echo(out);