Javascript 如果只打印偶数元素,是否可以将forEach循环与条件语句一起使用?
我正处于JS学习曲线的最开始阶段。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)
我尝试在数组(包含六种食物)上使用循环,然后只打印偶数元素:
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); } });