Javascript 查找具有指定人员数据的号码

Javascript 查找具有指定人员数据的号码,javascript,arrays,Javascript,Arrays,有一个按此顺序创建的二进制数数组 第一个数字表示此人是否正在休假:1/0 第二组8个数字表示工人的年龄:255岁,最大11111岁 第三组4个数字表示还有多少假期:最多15个假期1111 如何找到: 所有休假员工,年龄20-30岁(含20-30岁) 并非所有员工都在休假,休假次数不超过10次 工人数据数组: let workers = [ 0b1000101001001, 0b1000101111011, 0b1000111101011, 0b0000101101

有一个按此顺序创建的二进制数数组

第一个数字表示此人是否正在休假:1/0 第二组8个数字表示工人的年龄:255岁,最大11111岁 第三组4个数字表示还有多少假期:最多15个假期1111

如何找到:

所有休假员工,年龄20-30岁(含20-30岁) 并非所有员工都在休假,休假次数不超过10次 工人数据数组:

let workers = [
    0b1000101001001,
    0b1000101111011,
    0b1000111101011,
    0b0000101101010,
    0b0000111011111,
    0b0000110011110,
    0b1001000011001,
    0b1001000011001,
    0b0000101101000,
    0b0000101100100,
];

要知道我在度假时编码的号码是否正确,请评估:

i >= 0x1000
(i >> 4) & 0xFF
i & 0xFF 
如果这是真的,那个工人正在休假

要知道我编码的数字的年龄,请评估:

i >= 0x1000
(i >> 4) & 0xFF
i & 0xFF 
要了解编码的假期天数,请评估:

i >= 0x1000
(i >> 4) & 0xFF
i & 0xFF 
剩下的应该很简单

20-30岁(含20-30岁)的所有休假工人

让工人=[0B100010101001、0b1000101111011、0B100011101011、0b0000101101010、0B000011011111、0b0000110011110、0B100100011001、0B100100011001、0B00001011000、0b0000101100100、]; 让结果=workers.filteri=>{ 设onVac=i>=0x1000; 设年龄=i>>4&0xFF;
return onVac&&age>=20&&age num.toString2要知道我是否在度假时编码这个数字,请计算:

i >= 0x1000
(i >> 4) & 0xFF
i & 0xFF 
如果这是真的,那个工人正在休假

要知道我编码的数字的年龄,请评估:

i >= 0x1000
(i >> 4) & 0xFF
i & 0xFF 
要了解编码的假期天数,请评估:

i >= 0x1000
(i >> 4) & 0xFF
i & 0xFF 
剩下的应该很简单

20-30岁(含20-30岁)的所有休假工人

让工人=[0B100010101001、0b1000101111011、0B100011101011、0b0000101101010、0B000011011111、0b0000110011110、0B100100011001、0B100100011001、0B00001011000、0b0000101100100、]; 让结果=workers.filteri=>{ 设onVac=i>=0x1000; 设年龄=i>>4&0xFF; 返回onVac&&age>=20&&age num.toString2解密:

函数decryptDigitsarray{ var结果=[]; whilebin!=&加密gitsarray.length{ 结果.pushparseIntbin.slice0,encriptDigitsArray[0],2; bin=bin.slicencriptDigitsarray[0]; encriptDigitsArray.shift; } 返回结果; } console.log00011101101101[8,4,1]; 控制台.log00011101101[8,4,1]; console.log0001110[8,4,1]; .as控制台包装{最大高度:100%!重要;顶部:0;}解密:

函数decryptDigitsarray{ var结果=[]; whilebin!=&加密gitsarray.length{ 结果.pushparseIntbin.slice0,encriptDigitsArray[0],2; bin=bin.slicencriptDigitsarray[0]; encriptDigitsArray.shift; } 返回结果; } console.log00011101101101[8,4,1]; 控制台.log00011101101[8,4,1]; console.log0001110[8,4,1];
.作为控制台包装{最大高度:100%!重要;顶部:0;}A数字=/=一个数字。请访问,查看和。做一些研究,搜索与此相关的主题;如果您遇到问题,请发布您的尝试,记录输入和预期输出,最好是向我们展示您的尝试。这不是免费的代码编写服务。这里的目标是让您发布您解决自己问题的尝试d其他人在他们不按预期工作时提供帮助。请看,workers中的第二个和第三个条目完全相同,但注释不同??第七个和第八个条目完全相同,但注释不同??最后两个数字完全相同,但注释不同??第五个条目的最低有效位为0,但它是假期天数为奇数??你是如何从第六条开始获得9天假期的?请……这里有太多的错误,这表明你在这里没有付出太多努力。@trincot我有点困惑,这些数字很容易混淆。一切都是固定的数字=/=一个数字。请访问,查看和。做什么进行一些研究,搜索相关主题;如果你陷入困境,发布一篇你的尝试,记录输入和预期输出,最好是向我们展示你的尝试。这不是一项免费的代码编写服务。这里的目标是让你发布你的尝试,以解决你自己的问题,而其他人则在这些尝试没有达到预期效果时提供帮助。请参阅和seworkers中的第二个和第三个条目完全相同,但注释不同??第七个和第八个条目完全相同,但注释不同??最后两个数字完全相同,但注释不同??第五个条目的最低有效位为0,但休假天数奇数??您是如何获得9天的假期的从第六条开始休假??请,…这里有太多错误,这表明您在这里没有做太多努力。@trincot我有点困惑,这些数字很容易混淆。所有问题都解决了。非常感谢您“0x1000”和“0xFF”是什么意思?如果我想提出其他fi,我如何理解我需要什么代码lters?0x表示十六进制表示法,就像0b表示二进制表示法一样。0xFF==0b11111111=
=255,0x1000==0b1000000000000==4096。我如何理解…:参见答案的第一部分,以及在我的答案的第二部分中该部分是如何使用的。我无法理解数据验证的时刻。如果我有一个稍微不同的数据绘制算法。条件:1,1111,1111,我需要找到:1,0,最多20,0,1我按第一个字节检查,但我可以检查第二个字节,你能告诉我为什么吗?let one=persons.filteri=>{let condition1=i>=0b100000000000000;let condition2=i>>1&i>=0b100000000000000;let condition3=i>>2&0b111111111;let condition4=i>>14&i>=0b100000000000000;返回condition1&&!condition2&condition3>=20&&condition4;};我不应该出现在&的右边。我在我的答案中添加了一个部分,使用的方法应该可以从位模式中获取任何部分。非常感谢“0x1000”和“0xFF”是什么意思?如果我想使用其他过滤器,我如何理解我需要什么代码?0x表示十六进制表示法,就像0b表示二进制表示法一样。0xFF==0b11111111==255,0x1000==0b1000000000000==4096。我如何理解…:参见答案的第一部分,以及在我的答案的第二部分中该部分是如何使用的。我无法理解数据验证的时刻。如果我有一个稍微不同的数据绘制算法。条件:1,1111,1111,我需要找到:1,0,最多20,0,1我按第一个字节检查,但我可以检查第二个字节,你能告诉我为什么吗?let one=persons.filteri=>{let condition1=i>=0b100000000000000;let condition2=i>>1&i>=0b100000000000000;let condition3=i>>2&0b111111111;let condition4=i>>14&i>=0b100000000000000;返回condition1&&!condition2&condition3>=20&&condition4;};我不应该出现在&的右边。我在我的答案中添加了一个部分,使用的方法应该可以从位模式中获取任何部分。