请求讲解array.forEach()方法及数组元素首字母大写代码逻辑
详解array.forEach()及代码核心语句工作机制
一、meals.forEach()方法的工作原理
forEach()是JavaScript数组的内置迭代方法,核心作用就是按顺序遍历数组的每一个元素,并对每个元素执行你传入的回调函数。
- 代码里的
meals.forEach(capitalize):会把meals数组中的每一项,依次传入capitalize函数进行处理。遍历顺序是从索引0到最后一个元素,也就是先处理"rice",再处理"meat",最后处理"salad"。 - 代码里的
meals.forEach(print):同理,把修改后的数组每一项传入print函数,执行打印操作。
另外,forEach()会自动给回调函数传递三个参数:
- element:当前正在遍历的数组元素值
- index:当前元素在数组中的索引位置(从0开始计数)
- array:调用
forEach()的原数组本身(这里就是meals)
你可以根据需求选择使用这些参数,比如print函数只用到了element,而capitalize函数三个参数都用到了。
二、array[index] = element[0].toUpperCase() + element.substring(1);的执行逻辑
这行代码的作用是把当前数组元素的首字母转为大写,其余字母保持原样,然后替换原数组中的对应元素,拆解来看:
element[0]:获取当前元素的第一个字符,比如遍历到"rice"时,取到的是"r".toUpperCase():将这个首字符转为大写,"r"就变成了"R"element.substring(1):从元素的索引1位置开始,截取到字符串末尾的部分,"rice"截取后得到"ice"- 拼接两部分:把大写的首字符和截取后的字符串拼接,得到
"Rice" array[index] = ...:将拼接好的新字符串,赋值给原数组对应索引位置的元素,这样原数组meals中索引0的"rice"就被替换成了"Rice"
整个代码的执行流程:
- 先通过
meals.forEach(capitalize)遍历数组,把所有元素都改成首字母大写的形式,此时meals数组变成["Rice", "Meat", "Salad"] - 再通过
meals.forEach(print)遍历修改后的数组,依次打印每个元素,控制台最终输出:
Rice Meat Salad
内容的提问来源于stack exchange,提问作者New Developer
相关产品推荐
相关产品推荐

