我怎样才能在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')
}
答案 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而不会有太大变化。只需使用var
,const
或let
声明变量,在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')
}
}