我如何在。map中跳过数组元素?
我的代码:
var sources = images.map(function (img) {
if(img.src.split('.').pop() === "json"){ // if extension is .json
return null; // skip
}
else{
return img.src;
}
});
这将返回:
["img.png", null, "img.png"]
为了推断Felix Kling的评论,你可以像这样使用.filter():
var sources = images.map(function (img) {
if(img.src.split('.').pop() === "json") { // if extension is .json
return null; // skip
} else {
return img.src;
}
}).filter(Boolean);
这将从.map()返回的数组中删除错误值。
你可以进一步简化如下:
var sources = images.map(function (img) {
if(img.src.split('.').pop() !== "json") { // if extension is .json
return img.src;
}
}).filter(Boolean);
甚至可以使用箭头函数、对象解构和&&操作符作为一行代码:
var sources = images.map(({ src }) => src.split('.').pop() !== "json" && src).filter(Boolean);