Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果只打印偶数元素,是否可以将forEach循环与条件语句一起使用?_Javascript_Arrays_If Statement_Foreach - Fatal编程技术网

Javascript 如果只打印偶数元素,是否可以将forEach循环与条件语句一起使用?

Javascript 如果只打印偶数元素,是否可以将forEach循环与条件语句一起使用?,javascript,arrays,if-statement,foreach,Javascript,Arrays,If Statement,Foreach,我正处于JS学习曲线的最开始阶段。 我尝试在数组(包含六种食物)上使用循环,然后只打印偶数元素: const foodArray=[“比萨饼”、“玉米饼”、“水果”、“蔬菜”、“鹰嘴豆泥”、“茶”]; Foodaray.forEach(食物=>{ 如果(foodArray.length%2=0){ log(`${food}`); } }); 这完全错了吗?我应该将for或while循环与if条件语句结合使用吗?此处使用=作为赋值运算符时出现了一个错误(foodArray.length%2=0)

我正处于JS学习曲线的最开始阶段。
我尝试在数组(包含六种食物)上使用循环,然后只打印偶数元素:

const foodArray=[“比萨饼”、“玉米饼”、“水果”、“蔬菜”、“鹰嘴豆泥”、“茶”];
Foodaray.forEach(食物=>{
如果(foodArray.length%2=0){
log(`${food}`);
}
});

这完全错了吗?我应该将for或while循环与if条件语句结合使用吗?

此处使用=作为赋值运算符时出现了一个错误
(foodArray.length%2=0)
即使您通过使用
==
而不是
=
来解决该问题,如果食物数组的长度为,它也将打印所有值,否则它将不打印任何内容

你应该做以下几件事

const foodArray=[“比萨饼”、“玉米饼”、“水果”、“蔬菜”、“鹰嘴豆泥”、“茶”];
Foodaray.forEach((食品,指数)=>{
如果(索引%2==0){
log(`${food}`);
}

});在我看来,一个正常的
循环将是一个不错的选择。如果不需要引用元素的索引,
forEach
-循环更好。在您的例子中,您需要索引,因为它告诉您元素是否为偶数。下面是一个小例子:

const foodArray = ["pizza", "tacos", "fruit", "veggies", "hummus", "tea"];
for (i = 0; i < foodArray.length; i++) {
  if (i % 2 === 0) {
    console.log(foodArray[i]);
  }
}

总是尽量避免forEach循环,因为它会增加调用堆栈的大小(在每次调用新函数的循环中),这里是对代码的更正

foodArray.forEach((food, index)=> { if (index % 2 === 0) { console.log(food); } });
2种方式:

const foodArray=[“比萨饼”、“玉米饼”、“水果”、“蔬菜”、“鹰嘴豆泥”、“茶”]
Foodaray.forEach((食品,指数)=>
{
if(!(索引%2))console.log(`s1->${food}`)
})
console.log('------------')
//或
for(设i=0;i${foodArray[i]}`)

.as console wrapper{max height:100%!important;top:0;}
有一种方法可以通过执行索引模数检查来实现这一点-只需在每次迭代时将索引增加2,而不是1。这是更有效的,因为它防止了每次迭代的检查(在这个列表中并不重要-但是想象一下,如果你有一个100万项的数组)

const foodArray=[“比萨饼”、“玉米饼”、“水果”、“蔬菜”、“鹰嘴豆泥”、“茶”];
对于(i=0;i}
你可以做你想做的事情,但代码不正确:首先你必须检查索引是奇数还是偶数(不是数组长度)然后,当数组从索引0开始时,如果你想要第二、第四、第六等元素,你必须打印有奇数索引的元素@secan!那么这算是对的吗?const foodArray=[“pizza”、“tacos”、“fruit”、“vegies”、“hummus”、“tea”];for(i=0;ifor(让i=1;i
)开始循环,这样你就避免了第一个不必要的循环,你可以直接使用
foodArray[i]
而不是
foodArray[i+1]
漂亮。真的!再次感谢你
foodArray.forEach((food, index)=> { if (index % 2 === 0) { console.log(food); } });