我试图从二进制文件中获取所有索引,如“01000111”,因此它应该返回一个数组[1,2,3,7];
我试过这个来获取索引:
var getIndex1 = function(binary){
var str = binary.toString();
var indices = [];
for(var i=0; i<str.length;i++) {
if (str[i] == "1"){
indices.push(i);
}
}
return indices;
};
当我尝试使用该函数获取索引时,我得到了这个:
return getIndex1("01000111"); // it returns [0,2,3,4]
我尝试了相同的功能从scisors获取“s”的所有索引,它工作正常。有人有过这种问题吗?我在这里失踪了什么?请帮助,谢谢。
答案 0 :(得分:1)
试试这个plunker。
您提供的代码正在返回[1,5,6,7]
。这是预期的行为。
使用字符串"01000111"
,索引1,5,6和7的值为1
如果你想从右到左,你应该将你的功能改为:
var getIndex1 = function(binary){
var str = binary.toString();
var indices = [];
for(var i=str.length; i>0; i--) {
if (str[i] == "1"){
indices.push(str.length - i - 1);
}
}
return indices;
};