Javascript 循环思考项目并通过逐字比较单词来存储结果

Javascript 循环思考项目并通过逐字比较单词来存储结果,javascript,typescript,Javascript,Typescript,我有二维数组,希望逐字母比较数组a中的每个单词和数组b中的每个单词 比方说 a=['letter']、['yellow']、['planet']、['blue']、['sun']] b=[['letter']、['yellow']、['planet']、['blur']、['son']] console.log(this.a[0][0]);//第一个字第一个字母 console.log(this.b[0][0]);//第一个字第一个字母 对于(设i=0;i

我有二维数组,希望逐字母比较数组a中的每个单词和数组b中的每个单词

比方说

a=['letter']、['yellow']、['planet']、['blue']、['sun']]
b=[['letter']、['yellow']、['planet']、['blur']、['son']]
console.log(this.a[0][0]);//第一个字第一个字母
console.log(this.b[0][0]);//第一个字第一个字母
对于(设i=0;i}
您可以使用变量来控制:

a=[‘字母’、‘黄色’、‘行星’、‘蓝色’、‘太阳’];
b=[‘字母’、‘黄色’、‘行星’、‘模糊’、‘儿子’];
对于(设i=0;i}
您只需将条件移动到外部循环并计算匹配的字母数即可

for (let i = 0; i < this.b.length; i++) { // 5 words
    let matchedLetters = 0;

    for (let j = 0; j < this.b[i].length; j++) { // 6 letter max
        if (this.a[i][j] === this.b[i][j]) {
            matchedLetters++;
        }
    }

    if (matchedLetters === this.a.length) {
        alert('ok');
    } else {
        alert('hmm');
    }
}
for(设i=0;i

注意循环中的索引条件。我将
j<6
替换为
j
(这不是很干净),因为仅仅比较
j<6
就可以得到一个索引错误。

我会尝试以下方法。我还修改了代码,使其能够处理任意长度的单词。不过,我假设您有一个特定的原因来比较单词的字符(因为您也可以只使用
a[I]==b[I]

a=[‘字母’、‘黄色’、‘行星’、‘蓝色’、‘太阳’];
b=[‘字母’、‘黄色’、‘行星’、‘蓝色’、‘太阳’];
对于(设i=0;ithis.b[i].length
?此.a[i]长度
:this.b[i].长度;
//只要a[i][j]和b[i][j]相等,则增量j
对于(;this.a[i][j]==this.b[i][j]&&j}
[字母]无效。为什么您需要一个二维阵列来进行此操作?为什么jYou可能想把单词放在字符串中,否则语法就无效了。字符串本身可以看作是一个字符数组<代码>a=['字母'],['黄色'],['行星'],['蓝色'],['太阳']
变成一个3D数组,需要三个嵌套for循环。@raven“abc”==“abc”?是的,最好使用
长度,但我刚刚回答了一个问题,如何消除每个字母的警报比较Pontugal添加“test”和“test”,它将中断