老师能把这里的逻辑解释一下吗
来源:2-8 for-of
unbreakable_全栈
2020-10-27 23:45:42
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
oStr.forEach((word, index) => {
// console.log(word, index)
// console.log(map[word])
// console.log(oStr[index])
if (words.includes(word)) oStr[index] = map[word]
})
console.log(oStr)
1回答
同学你好,解答如下:
1、首先可以整体理解代码的意思:本段代码,使用includes方法判断字符串words中是否包含传入的word, 如果包含, 就将字母对应的数字存入oStr数组中,实现加密。例如word是P, 那么就会在map对象中找到字母P对应的数字, 替换oStr数组中的字母。
2、然后再拆分开理解。先了解下forEach的用法:
arr.forEach(callback(currentValue [, index [, array]])[,thisArg]);
callback 为数组中每个元素执行的函数,该函数接收三个参数:
currentValue 数组中正在处理的当前元素。
index 可选 数组中正在处理的当前元素的索引。
array 可选 forEach() 方法正在操作的数组。
所以第一个参数代表的是word代表的是数组中每一项,第二个参数index代表的是索引:
oStr是字符串分割成的数组
map对象中,属性名是字母
所以map[word]的意思是通过属性名获取属性值,然后给oStr[index]重新赋值,将里面的字母替换成数值。从而oStr数组变为
祝学习愉快~
相似问题