forEach采用数组和回调

时间:2017-04-13 17:06:00

标签: javascript arrays callback

我需要帮助解决这个问题,因为我不理解:(。请帮忙!

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!

1 个答案:

答案 0 :(得分:0)

我不知道你想要实现什么,但你的代码不是惯用的JavaScript ......

核心JavaScript语言已经提供了可以直接使用的forEach方法。请阅读以下页面: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);