Похоже, вы действительно хотите изменить счет двоичных чисел; то есть для двоичного файла это будет
0001
0010
0011
но вы переворачиваете это. Что хорошо. Следующий код считает от 0 до необходимого числа (16 для четырехбуквенного слова), получает двоичное представление для каждого числа, инвертирует его и выводит буквы вашего слова для тех мест, где в двоичном представлении есть единица.
function letterScroller(str) {
var iterations = Math.pow(2,str.length);//iterate from 0 to 2**wordlength
var result = "";
for (i=0;i<iterations;i++) {
//get the binary representation, pad it, and reverse it
var bin = reverse(pad(i.toString(2), str.length));
//loop through binary, adding character of word where there's a 1
for (j=0;j<str.length;j++) {
if (bin.charAt(j)=="1") {
result += str.charAt(j)
} else {
result += "-";
}
}
result += "<br />"; //separate lines with HTML line break
}
return result;
}
function pad(str, length) {
while (str.length < length) {
str="0" + str;
}
return str;
}
function reverse (str) {
return str.split("").reverse().join("");
}