當只有傳入的元素作爲參數傳遞給一個內部函數時,是否有辦法導出參數的來源?如何檢查傳遞給遞歸函數的參數是否是數組的元素?
例如:
Array.prototype.forEach([1,2,3,4,5], function(item) {
doSomething(item); // How to tell whether item was passed from an array?
};
謝謝!
當只有傳入的元素作爲參數傳遞給一個內部函數時,是否有辦法導出參數的來源?如何檢查傳遞給遞歸函數的參數是否是數組的元素?
例如:
Array.prototype.forEach([1,2,3,4,5], function(item) {
doSomething(item); // How to tell whether item was passed from an array?
};
謝謝!
不,您正在獲取價值。它沒有這樣的信息。
的forEach回調有三個參數,CurrentValue的(在你的情況下項目),數組中的當前項的索引被處理,並且陣列本身:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
此外,您還可以使用參數,例如
[1, 2, 3, 4, 5].forEach(function(item) { console.log(item, arguments); });
雖然我認爲簡單地使用額外的回調參數會更有效率嗎?最後,在判斷item是否從數組中「傳遞」的情況下,如果你正在使用Array的forEach,那麼這個項目總是來自數組,除非我誤解了你的問題?
我很感謝你在努力幫助的努力。在你所說的內容中,你是對的,它的第三個參數可以被檢查來驗證它的數組類型並作爲參數傳遞給另一個函數。但是我希望在這種情況之外有一種方法,不幸的是,我相信這種方法不存在。謝謝你! – Progoogler
總結一下。謝謝。 – Progoogler