有人可以請解釋我這行代碼如何工作。[] .push.apply如何工作?
[].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://stackoverflow.com/questions/1986896/what-is-the-difference-between-call-and-apply可以幫助 – murli2308
什麼具體造成混亂? –