Javascript(ES6)将数字转换为2的幂的字符串数组

Javascript(ES6)将数字转换为2的幂的字符串数组,javascript,ecmascript-6,pow,Javascript,Ecmascript 6,Pow,在将一个数字整数转换成一个字符串数组时,是否有任何智能内联线/单内联线ES6,该字符串数组获得该数字的二进制幂pow2,x的位位置? i、 e 如果你真的想要一个2的幂的数组,它将产生一个数字,那么对于13,你需要: 2 ** 0 = 1 2 ** 2 = 4 2 ** 3 = 8 1 + 4 + 8 = 13 也就是说,-[0,2,3]是导致13的幂 .toString2将一个数字转换为其二进制等价物,因此您可以将该字符串的元素取为1s: 常数num=13; 常数arr=[]; […num.

在将一个数字整数转换成一个字符串数组时,是否有任何智能内联线/单内联线ES6,该字符串数组获得该数字的二进制幂pow2,x的位位置? i、 e

如果你真的想要一个2的幂的数组,它将产生一个数字,那么对于13,你需要:

2 ** 0 = 1 2 ** 2 = 4 2 ** 3 = 8 1 + 4 + 8 = 13 也就是说,-[0,2,3]是导致13的幂

.toString2将一个数字转换为其二进制等价物,因此您可以将该字符串的元素取为1s:

常数num=13; 常数arr=[]; […num.toString2].reverse.forEachbit,i=>{ 如果位=='1'{ 普希阿罗; } };
console.logarr;你是如何在多行中完成的?为什么[1,3,4]?2**4单独为16,大于13。你是说[0,2,3]?看看数组映射函数。。。非常抱歉!我错了。当然应该是[1,4,8]2ª+2²+2³现在我尝试了类似的方法,它似乎有效:13..toString2.split.reverse.mapv,I=>Math.pow2,I*v.toString.filterw=>w!='0'
13  =>    ["1","3","4"]    //   (pow(2,1) + pow(2,3)  + pow(2,4))  = 13