2017-04-13 38 views
-3

我需要幫助這個問題,因爲我不明白它:(。請幫助!的forEach需要一個數組和一個回調

功能的forEach以一個數組和一個回調。它運行的每個元素的回調數組的 - 這就是它

var alphabet = ''; 
var letters = ['a', 'b', 'c', 'd']; 
forEach(letters, function(char) { 
    alphabet += char; 
}); 
console.log(alphabet); //prints 'abcd' 


**(underneath is is where I edit)** 



// Challenge 4 
function forEach(array, callback) { 

} 

// see for yourself if your forEach works! 
+0

也許搭起你試圖去做的例子或者你卡住的地方。 – theWanderer4865

+2

你不明白什麼?你知道如何遍歷數組嗎?你知道如何調用一個函數,以及如何爲函數提供參數嗎?你不明白這個問題的基本原理嗎(即你根本不理解指令中使用的一個或多個詞,「在數組的每個元素上運行回調」)?我從文本「挑戰4」中假設,你問題中的代碼是你沒有自己寫的樣板,所以我不知道你知道什麼,也不知道。 – apsillers

+0

你的預期產出是什麼特定的輸入? –

回答

0

我不知道到底要達到什麼樣的,但你的代碼是不是地道的JavaScript ...

JavaScript語言已經提供了forEach方法的核心是!你可以直接使用,請閱讀fo llowing頁:Array.prototype.forEach()

當您使用forEach,你的代碼應該是這樣的:

var alphabet = '', 
    letters = ['a', 'b', 'c', 'd']; 

letters.forEach(function (letter) { 
    alphabet += letter; 
}); 

console.log(alphabet); 

但如果你關心性能的泄漏,可能要使用傳統的for循環使用緩存的長度來代替。

var alphabet = '', 
    letters = ['a', 'b', 'c', 'd']; 

for(var i = 0, len = letters.length; i < len; i++) { 
    alphabet += letters[i]; 
} 

console.log(alphabet); 

感謝ES6,您還可以使用for...of圈像數組迭代對象。這是現代JavaScript應用程序推薦的指令:

let alphabet = '', 
    letters = ['a', 'b', 'c', 'd']; 

for (const letter of letters) { 
    alphabet += letter; 
} 

console.log(alphabet); 

但由於開發商是懶惰有時,最好的答案很可能是這一個:

var letters = ['a', 'b', 'c', 'd'], 
    alphabet = letters.join(''); 

console.log(alphabet); 
+0

非常感謝! –

相關問題