Javascript for循环在比较部分赋值

Javascript for loop with asignment in comparison section

本文关键字:赋值 比较部 for 循环 Javascript      更新时间:2023-09-26

这是快捷方式吗

var cars = [ "ford", "toyota"];
for (var i = 0, car; i < cars.length, car = cars[i]; i++) {
    console.log(car);
}

var cars = [ "ford", "toyota"];
var car;
for (var i = 0; i < cars.length; i++) {
    car = cars[i];
    console.log(car);
}

好还是坏?

我已经使用较长的代码表示法有一段时间了,因为处理的数组名称并不总是那么短(cars),但现在我试图最小化它并找到了解决方案。

这不是一个好的做法。

如果您不想使用index访问,请尝试使用forEach

这样的

var cars = [ "ford", "toyota"];
cars.forEach(function(car,index){
   console.log(car);
})

如果想使用break,则使用someevery

试试这样

var cars = [ "ford", "toyota"];
cars.some(function(car,index){
   console.log(car);
   return true; // break on return true
})
每一个<<p> /strong>
var cars = [ "ford", "toyota"];
cars.every(function(car,index){
   console.log(car);
   return false; // break on return false
})

JSFIDDLE

您已经获得了使用.forEach()的解决方案,这里是while循环的解决方案:

var cars = ["ford", "toyota"];
var car, i = 0;
while (car = cars[i++])
  console.log(car);

我更喜欢这个:

 cars.forEach(function(car, i) {
     ...
 });

因为您已经获得了参数cari的完全封闭作用域。