在数组javascript中使用按位AND(&;)运算符?
在这段代码中获取数组中的所有组合。有人能解释一下这段代码中的位and运算符的用途吗:在数组javascript中使用按位AND(&;)运算符?,javascript,Javascript,在这段代码中获取数组中的所有组合。有人能解释一下这段代码中的位and运算符的用途吗: function getCombinations(valuesArray) { var combi = []; var temp = []; var possibleCombis = Math.pow(2, valuesArray.length); for (var i = 0; i < possibleCombis; i++) { tem
function getCombinations(valuesArray)
{
var combi = [];
var temp = [];
var possibleCombis = Math.pow(2, valuesArray.length);
for (var i = 0; i < possibleCombis; i++)
{
temp = [];
for (var j = 0; j < valuesArray.length; j++)
{
if ((i & Math.pow(2, j)))
{
temp.push(valuesArray[j]);
}
}
if (temp.length > 0)
{
temp.push (temp.reduce(getSum));
combi.push(temp);
}
}
console.log(combi.join("\n"));
return combi;
}
函数getCombinations(valuesArray)
{
var combi=[];
var-temp=[];
var-possibleCombis=Math.pow(2,值ray.length);
对于(变量i=0;i0)
{
温度推送(温度降低(getSum));
组合推力(温度);
}
}
console.log(combi.join(“\n”);
返回组合;
}
这看起来像是错误地尝试进行位计算并检测位标志,但它可能会起作用,至少对j
的合理值是如此
我建议使用位移位运算符,如
1代码的用途是什么?@FelixKling目的是获得可能的组合扫描您请解释最后一部分如何使用位AND运算符?想象一下abcd
它们被映射到8421
的位,因此在计算时,它会变成1
,2
,12
,4
,14
,24
,124
,8
等等。这只是以2为基数计算。