javascript - js位运算解决一个问题
PHP中文网
PHP中文网 2017-04-11 11:02:09
[JavaScript讨论组]

项目有一个需求是展示该产品的语言版本,其数组为:

["中文(简)", "中文(繁)", "英文"]

比如A产品从后台获取到的语言版本数据是:

lang:4

通过二进行位运算,匹配数组中并得到该产品的语言版本为:英文。

我是想知道怎样用js来通过lang的值来运算并匹配到数组中对应的值,如A产品的语言版本为“英文”。(语言版本是可多选的)

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(3)
巴扎黑
var arr = ["中文(简)", "中文(繁)", "英文"];
var code = 4;

var result = arr.filter((_, idx) => {
  var flag = 1 << idx;
  return (flag & code) == flag;
});
PHP中文网
const num = 4;
const bytestring = num.toString(2);//"100"
const arr = ["中文(简)", "中文(繁)", "英文"];
const ret = arr.reverse().filter((v,i)=>+(bytestring[i]));

console.log(ret);// ["英文"];

数组只有3项,所以可以用三位的二进制代替,其中简是001,繁是010,英是100。

把数字转成二进制之后再对比数组做过滤即可。

高洛峰

呀,ES5方式怎么写?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号