【发布时间】:2021-10-15 09:42:18
【问题描述】:
我目前正在开发一个 JavaScript 个人项目,但遇到了一个主要障碍;我有 2 个数组,一个用于句子的字母,一个包含用于信息的对象。
我需要遍历包含所有字母的第一个数组,然后遍历第二个数组以检查letter 变量是否包含来自我的第二个数组中object 的任何数据。问题是我不知道如何同时运行这些数组,导致这样的输出,原因是数组 1 中的索引数量乘以数组 2 中的数量:
这是我的代码:
clearLookALikes: (string) => {
const mainArray = string.split('')
const replaceInfo = [
{
abuseLetter: 'È',
replacementLetter: 'E'
},
{
abuseLetter: 'É',
replacementLetter: 'E'
},
{
abuseLetter: 'Ë',
replacementLetter: 'E'
},
{
abuseLetter: 'Ê',
replacementLetter: 'E'
},
{
abuseLetter: 'Ē',
replacementLetter: 'E'
},
{
abuseLetter: 'Ē',
replacementLetter: 'e'
},
]
const newArray = []
for (const letter of mainArray) {
for (const object of replaceInfo) {
if (letter === object.abuseLetter) {
newArray.push(object.replacementLetter)
} else {
newArray.push(letter)
}
}
}
console.log(newArray)
const finishedProduct = newArray.join('')
console.log(finishedProduct)
}
理想情况下,它会按预期替换字母。谢谢您的帮助!我想知道这是否是正确的做法,如果我应该这样做,请随时给我反馈。
【问题讨论】:
-
replaceInfo应该是一个对象(或映射),理想情况下,将“滥用”字母映射到替换字母。就代码而言,在您遍历整个 replaceInfo 数组并确定您没有找到匹配的滥用字母之前,您不应该将字母推送到 newArray 上。
标签: javascript arrays loops object nested-loops