博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
_.compact(_.map(_.toArray(n.toString(2)).reverse(), (v, i) => 2 ** i * v))
阅读量:6476 次
发布时间:2019-06-23

本文共 725 字,大约阅读时间需要 2 分钟。

hot3.png

包含 underscore 和 es2016 语法

功能

将一个数转换成多个2的N次方的数的和

| 输入 | 二进制 | 输出 | | - | - | - | | 1 | 0001 | [1] | | 6 | 0110 | [2, 4] | | 7 | 0111 | [1, 2, 4] |

用途

数据库中以整数形式存储,界面上以多选的形式展现

数据库存了6,取到前端,转换成 [2,4],同时选中 b 和 c

分解动作

假设 n = 6

n // 6n.toString(2) // '110'_.toArray(n.toString(2)) // ['1', '1', '0']_.toArray(n.toString(2)).reverse() // ['0', '1', '1']_.map(_.toArray(n.toString(2)).reverse(), (v, i) => 2 ** i * v) // [0, 2, 4]_.compact(_.map(_.toArray(n.toString(2)).reverse(), (v, i) => 2 ** i * v)) // [2, 4]

其他写法

_.chain(n.toString(2)).toArray().map((b, i, a) => 2 ** (a.length - i - 1) * b).compact().value()_.compact(_.range(32).map((v) => 2 ** v & n)) // 最大处理32位整型

转载于:https://my.oschina.net/xiongliding/blog/758199

你可能感兴趣的文章
使用Akka Actor和Java 8构建反应式应用
查看>>
curl常用命令详解
查看>>
saltstack 添加计划任务
查看>>
Puppet module命令参数介绍(六)
查看>>
《UNIX网络编程》中第一个timer_server的例子
查看>>
CISCO 路由器(4)
查看>>
网络服务搭建、配置与管理大全(Linux版)
查看>>
Silverlight 5 Beta新特性[4]文本缩进控制
查看>>
springMVC多数据源使用 跨库跨连接
查看>>
Git服务端和客户端安装笔记
查看>>
Spring Security(14)——权限鉴定基础
查看>>
IntelliJ IDEA快捷键
查看>>
【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(下)
查看>>
MongoDB的基础使用
查看>>
进程间通信——命名管道
查看>>
ssh登陆不需要密码
查看>>
ARP
查看>>
java mkdir()和mkdirs()区别
查看>>
桌面支持--excel自动换行
查看>>
虚拟化--003 vcac licence -成功案例
查看>>