通过invert函数反转二维二进制数组,但这不起作用,

GFLEE

通过invert函数反转二维二进制数组,但该函数在'if(){...}'之后不起作用

        function invert(arr){

                   for(let i=0;i<arr.length;i++)
                   {
                           for(let j=0;j<arr[i].length;j++) 
                           {
                               //     or   arr[i][j]=~arr[i][j] ?;
                            if(arr[i][j]==0)   //start inverting the arr
                            {

                                    //all above are right,but the following operation seems not working
                                    arr[i][j]=1;
                            }
                            else{
                                    arr[i][j]=0; 
                            }
                           }
                   }

                   console.log(arr);  //print the array 
                    return arr;
            } 

在此处输入图片说明

kshetline

从控制台输出中显示的内容来看,数组中没有二进制数,字符串由0和1组成-这不是同一回事。

您可以按照Pac0的建议将数组转换为数字2和0的真实2D数组。或者,如果您想将字符串转换为字符串形式,并假设字符串表示的二进制数不超过8位,则可以执行以下操作:

arr.map(s => (~parseInt(s, 2) & 0xFF).toString(2))

或者,将其纯粹作为字符串处理来处理,匹配要使用的任意位数:

arr.map(s => s.replace(/[01]/g, b => b === '0' ? '1' : '0'))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章