我遍历整个汽车阵列,并查看计数没有“滤除”类的对象的数量。是否可以简化此语法?我知道在jQuery中,您可以对元素执行以下操作:
$("element").hasClass("filtered-out").length;
我的代码:
var available_cars = 0;
cars.forEach(function(element) {
if (!element.hasClass("filtered-out"))
available_cars++;
});
最佳答案
您可以使用filter
:
var available_cars = cars.filter(function(car) { return !car.hasClass("filtered-out"); }).length;
ES2015 +箭头功能更加简洁:
var available_cars = cars.filter(car => !car.hasClass("filtered-out")).length;
如果您可以使
cars
成为jQuery对象而不是数组(您似乎在问题中将其用作数组),则可能是:var available_cars = cars.filter(":not(.filtered-out)").length;
该问题将
cars
视为数组(cars.forEach
),但将单个元素视为jQuery对象(element.hasClass
),所以这就是我在上面的第一段代码中所做的。不过,这很奇怪。关于javascript - JavaScript forEach语法和长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50006305/