我有一个简单的位掩码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);

09-25 15:59