是否有一个javascript脚本解决方案来检查字符串并根据字符串字符位置显示一个值。例如:
0001001000010010
如果第1位为1,则显示红色
如果第1位为0则不显示任何内容
如果第2位为1,则显示蓝色
如果第2位为0,则不显示任何内容
等等。
我的字符串目前只显示16位输出
$("#spanwStatus_Word_1").text (Number(data[6]).toString(2));
答案 0 :(得分:0)
您可以使用此代码:
var res = words.filter ( (word, i) => num & (1<<i) );
var words = ['indigo', 'grey', 'pink', 'red',
'blue', 'yellow', 'olive', 'beige',
'green', 'orange', 'brown', 'fusha',
'purple', 'black', 'white', 'violet'],
num = 0b0001001000010010;
var res = words.filter ( (word, i) => num & (1<<i) );
console.log(res);
&#13;
然后你有一个单词数组,每个位都有一个。
请注意,数组中的单词列出左侧最低索引,而(二进制)数字表示最低&#34;索引&#34;在右边。因此,如果您设置最低有效位,您将在索引0处获得该单词。
如果您需要包含数组中的空格,请使用map
:
var res = words.map ( (word, i) => num & (1<<i) ? word : '' );
var words = ['indigo', 'grey', 'pink', 'red',
'blue', 'yellow', 'olive', 'beige',
'green', 'orange', 'brown', 'fusha',
'purple', 'black', 'white', 'violet'],
num = 0b0001001000010010;
var res = words.map ( (word, i) => num & (1<<i) ? word : '' );
console.log(res);
&#13;