我有一个简单的位掩码3
(在base 2中为"011"
),它表示我应该提取array[0]
和array[1]
,但不能提取array[2]
什么是有效的方法?
最终,我生成的新数组的值传递了.filter
像这样:
var bitmask = 37, // "100101"
array = ["a", "b", "c", "d", "e", "f"];
var array2 = array.filter((value, index) => {
// do something with bitmask and index to return true
});
// array2 should be ["a", "c", "f"];
最佳答案
扩展您的原始示例,您可以执行以下操作:
var bitmask = 37, // "100101"
array = ["a", "b", "c", "d", "e", "f"];
var array2 = array.filter((value, index) => {
// do something with bitmask and index to return true
return bitmask & (1 << index);
});
// array2 should be ["a", "c", "f"];
console.log(array2);