let a=[1,2,3,4];
let m=[1,4,9,16];
for (let x in a) {
x = parseInt(x)+1;
console.log((x**2) in m)
}
我已经尝试过,并且每次获得true
,false
,false
,false
的输出。为什么这样?
我希望它在每种情况下都能返回true
。
答案 0 :(得分:3)
您可以使用for ... of
statement而不是for ... in
statement作为键的值。然后使用Array#includes
检查。
let a = [1, 2, 3, 4];
let m = [1, 4, 9, 16];
for (let x of a) {
console.log(m.includes(x ** 2));
}
答案 1 :(得分:0)
您要为数组+1
中的每个元素添加a
。使用includes
而不是in
来匹配另一个{{1 }}。
使用调试器,然后再次运行代码段
element
所以最后一个元素是array(say m, as per your snippet)
乘以debugger;
let a=[1,2,3,4];
let m=[1,4,9,16];
for (let x of a) {
x = parseInt(x)+1; // you are increasing value by +1 here so [1,2,3,4] becomes [2,3,4,5]
console.log(m.includes(x**2)) //prints true true true false
}
的倍数,因此它在控制台上显示为false。