请有人一步一步地解释这个Javascript代码

时间:2015-04-21 10:17:05

标签: javascript loops

我学习Javascript我发现了这段代码,却无法理解它在做什么。请有人一步一步向我解释

var ar1 = [1, 5, 6, 4, 3, 5, 100, -20];

function funDo(ar) {
    for (k = 0, i = 1, temp = ar.length - 1; k < temp; k++) i = (i <<
        1) + 1;
    for (; i > 0; i--) {
        for (k = 0, sum = 0, temp2 = []; k < ar.length; k++)
            if ((i >> (k)) % 2) {
                sum += ar[k];
                temp2.push(ar[k]);
            }
        if (sum == 10) console.log(temp2);
    }
}
funDo(ar1);

1 个答案:

答案 0 :(得分:1)

funDo(ar)找到(整数数组)ar&#34;所有序列&#34; ar的总和为== 10(..并将其记录到控制台)。

随意发表评论,询问更多细节。 : - )