javascript - js位运算解决一个问题
PHP中文网
PHP中文网 2017-04-11 11:02:09
0
3
266

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

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

比如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; });
    Ty80
    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方式怎么写?

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!