从二进制“”中获取所有索引值1;01000111”;

Get all index value of 1 from binary "01000111"

本文关键字:索引值 01000111 获取 二进制      更新时间:2023-09-26

我试图从二进制文件(如"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"的所有索引,效果很好。有人遇到过这种问题吗?我在这里缺少什么?请帮忙,谢谢。

试试这个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;
  };