我';在将Python代码实现为Javascript时,我做错了吗?

我';在将Python代码实现为Javascript时,我做错了吗?,javascript,python,Javascript,Python,我有下一个python代码: letter = ['a', 'b', 'c', 'd'] word = "Black" for i in word: if i in letter: print(i) 因此,我在JS中也尝试这样做: var letter = ['a', 'b', 'c', 'd']; var word = "Black"; var dictionary = []; var dictionaryCoincidence = []; for (var i =

我有下一个python代码:

letter = ['a', 'b', 'c', 'd']
word = "Black"
for i in word:
    if i in letter:
        print(i)
因此,我在JS中也尝试这样做:

var letter = ['a', 'b', 'c', 'd'];
var word = "Black";
var dictionary = [];
var dictionaryCoincidence = [];

for (var i = 0; i < word.length; i++) {
    dictionary.push(word[i]);
}

for (var i = 0; i < dictionary.length; i++) {
    if (dictionary[i] == letter[i]) {
        dictionaryCoincidence.push(dictionary[i]);
    }
}

console.log(dictionary);
console.log(dictionaryCoincidence);

var字母=['a','b','c','d'];
var word=“黑色”;
var字典=[];
var DictionaryConcidence=[];
for(变量i=0;i

但是,它不起作用

你真的不需要第二个循环。。只需检查单词[i]是否在字母数组中,就可以使用“includes”或“indexOf”来完成


var字母=['a','b','c','d'];
var word=“黑色”;
var字典=[];
var DictionaryConcidence=[];
for(变量i=0;i您可以使用检查某个元素是否属于数组,然后使用循环遍历字符串并执行以下操作:

    var letter = ['a', 'b', 'c', 'd'];
    var word = "Blackd";
    var dictionary = [];
    var dictionaryCoincidence = [];

   for (var i = 0; i < word.length; i++) {
    dictionary.push(word[i]);
   }

   for (var i = 0; i < dictionary.length; i++) {
       for(var j = 0; j < letter.length ; j++){
           if (dictionary[i] == letter[j]) {
             dictionaryCoincidence.push(dictionary[i]);
           }
        }
   }

   console.log(dictionary);
   console.log(dictionaryCoincidence);
const-letter=['a','b','c','d'];
const word=“黑色”;
for(单词的常量字符)
{
if(字母包括(字符))
console.log(char);
}
.as控制台{背景色:黑色!重要;颜色:石灰;}

.作为控制台包装{max height:100%!important;top:0;}
本着函数式python的精神,我建议使用
filter
,因为它的工作原理与python中的
filter
类似。问题在于Python和Javascript,所以:)


var字母=['a','b','c','d'];
var word=“黑色”;
var filtered=word.split(“”).filter(x=>letter.includes(x))
console.log(已过滤)
必须使用两个循环: 一个循环用于字典,一个循环用于这样的字母:

    var letter = ['a', 'b', 'c', 'd'];
    var word = "Blackd";
    var dictionary = [];
    var dictionaryCoincidence = [];

   for (var i = 0; i < word.length; i++) {
    dictionary.push(word[i]);
   }

   for (var i = 0; i < dictionary.length; i++) {
       for(var j = 0; j < letter.length ; j++){
           if (dictionary[i] == letter[j]) {
             dictionaryCoincidence.push(dictionary[i]);
           }
        }
   }

   console.log(dictionary);
   console.log(dictionaryCoincidence);
var字母=['a','b','c','d'];
var word=“Blackd”;
var字典=[];
var DictionaryConcidence=[];
for(变量i=0;i
尝试将第二个循环更改为

for (var i = 0; i < dictionary.length; i++) {
    if (letter.includes(dictionary[i])) {
        dictionaryCoincidence.push(dictionary[i]);
    }
}
for(var i=0;i
您需要检查字典[i]是否在字母数组中,而不是它是否等于字母[i]

  • 它给出了结果[a,c]。B不包括在内,因为它是大写的。 如果需要字母B,请将字典[i]转换为小写
  • 您可以使用letter.indexOf方法而不是includes()。 因此,条件字母.indexOf(dictionary[i])>-1也可以工作

  • 在JS中,应该使用两个
    来进行
    循环。首先迭代
    字典
    ,第二次迭代
    字母
    ,因为单词中的i是
    的(单词的变量i)
    i在字母中的等价物是
    字母。包括(i)
    变量字母=['a','b','c','d'];var word=“黑色”;word.split(“”).filter(x=>letter.includes(x))
    在for循环中,您正在比较if(dictionary[i]==letter[i])
    。只有当
    字典
    单词
    在相同的位置有相同的字母时,这才是正确的。非常感谢!哇!看起来很棒@VladislavDunaev请选择最能回答您问题的答案,并单击答案左侧的灰色复选标记