【发布时间】:2018-05-11 00:17:17
【问题描述】:
我有一个长度约为 1000 的数组。为什么 map 函数在某些索引中返回未定义?有没有办法只返回满足这个条件的数组?我想返回一个值 > 0 的数组。
var total_percents = cars.map(function(element) {
var savings_percent = Number(element[0].getAttribute("percent-savings"));
if (savings_percent > 0)
return savings_percent;
});
【问题讨论】:
-
您只为条件的一侧返回一个值。如果
savings_percent <= 0怎么办?看起来您可能想要使用reduce而不是map。 -
map的结果将是一个与原始长度相同的数组。如果map回调未返回值,则结果在该索引处未定义。听起来你想先过滤 -
如果
savings_percent为 undefined。您可以使用filter只返回想要的元素,或使用reduce一次处理所有元素。 -
您希望
total_percents的值是多少?单个数字、数字数组还是 car 值数组(无论它们是什么)?
标签: javascript jquery arrays