请问有人可以解释一下这行代码是如何工作的吗?
[].push.apply(perms, permutation(arr.slice(0), start + 1, last));
这个函数生成一个输入数组的所有排列组合的数组;
var permutation = function(arr, start, last){
var length = arr.length;
if(!start){
start = 0;
}
if(!last){
last = length - 1;
}
if( last === start){
return [arr];
}
var temp;
var perms = [];
for(var i = start; i < length; i++){
swapIndex(arr, i, start);
console.log(arr);
[].push.apply(perms, permutation(arr.slice(0), start + 1, last));
swapIndex(arr, i, start);
}
return perms;
};
apply
方法感兴趣吗?这是你可以调用 JavaScript 方法/函数的一种类型。你可以了解关于call
和apply
的知识。也许 https://dev59.com/_nI-5IYBdhLWcg3wKVA9 可以帮助你。 - murli2308