JavaScript中如何从forEach方法遍历数组时获取对应的元素值?
问题解答
原有写法正确性说明
你的写法不正确。Array.prototype.forEach() 设计为仅执行遍历副作用操作,本身始终返回undefined,不会收集回调函数的返回结果。你在回调中写x => x只是让回调返回当前元素,但forEach不会对这个返回值做任何处理,因此不可能得到你期望的输出。
可行的实现方式
根据你的使用场景可以选择以下方案:
- 仅需要控制台逐行打印元素,你之前的写法已经可以满足需求:
执行后控制台就会逐行输出每个元素值。array.forEach(element => console.log(element)) - 如果需要逐个拿到元素做其他业务操作,推荐使用
for...of循环,可直接拿到遍历的元素值:const array = ['1','2','3','4'] for (const item of array) { // 此处可直接使用item变量,即为当前遍历到的元素 console.log(item) } - 如果需要生成一个包含所有元素的新数组用于后续处理,使用
Array.prototype.map():const newArray = array.map(item => item) // 后续可直接操作newArray - 仅需要快速得到所有元素按行拼接的结果,直接用join方法:
console.log(array.join('\n'))
内容的提问来源于stack exchange,提问作者Maykel
相关产品推荐
相关产品推荐

