将python条件转换为javascript - 控制流

时间:2017-12-26 20:14:51

标签: javascript python arrays list

我怎样才能在JavaScript中执行此操作?它应该在words

中点击big_list时打印'找到'
big_list = ['this', 'is', 'a', 'long', 'list', 'of' 'words']

needle = ['words', 'to', 'find']

for i in big_list:
    if i in needle:
        print('Found')
    else:
        print('Not Found')

我知道一般的if / else结构,但我不确定语法:

if (big_list in needle) {
  console.log('print some stuff')
} else {
  console.log('print some other stuff')
}

2 个答案:

答案 0 :(得分:2)

您可以将includes函数与for循环一起使用,如下所示:

for (let i = 0; i < big_list.length; i++)
{
    if (needle.includes(big_list[i])) console.log("Found");
    else console.log("Not found");
}

或使用forEach

big_list.forEach(function(e) { 
     if (needle.includes(e)) console.log("Found");
     else console.log("Not found");
});

答案 1 :(得分:1)

你已经差不多了,但有一些值得注意的事情。首先,in关键字在javascript中的工作方式与在python中的工作方式不同。在python中,它可以用于检查项是否是集合的成员,但在javascript中,它检查项是否是对象的。所以:

"foo" in {foo: "bar"} // True

"foo" in ["foo", "bar"] // False

因为在第二种情况下,虽然"foo"是数组的成员,但in关键字正在寻找它作为键。在这些方面:

"0" in ["foo", "bar"] // True

由于"0"是数组的键(即指向第一项的键)

除此之外,您的代码可以适应javascript而不会有太大变化。只需使用varconstlet声明变量,在if上使用大括号,并将其调用替换为等效的javascript:

/*

# Python Code:
big_list = ['this', 'is', 'a', 'long', 'list', 'of', 'words']

needle = ['words', 'to', 'find']

for i in big_list:
    if i in needle:
        print('Found')
    else:
        print('Not Found')

*/

// Now in javascript:

const big_list = ['this', 'is', 'a', 'long', 'list', 'of', 'words']
const needle = ['words', 'to', 'find']

for (let i of big_list) {
  if (needle.includes(i)) {
    console.log('Found')
  } else {
    console.log('Not Found')
  }
}