我正在使用映射函数来浏览幻灯片数据,我只想返回前 5 个。但是,幻灯片返回前 5 张幻灯片,然后返回 2 张空幻灯片对象(因为有 7 张幻灯片。如何防止最后两张幻灯片返回?
const slides = slideData.slides.map((slide, index) => {
if( index < 5 ) {
return slide;
}
});
console.log(slides);
此外,如果我做类似的事情......
let firstFive = [];
const slides = slideData.slides.map((slide, index) => {
if( index < 5 ) {
firstFive.push(slide)
}
});
这工作正常,但是我收到一个 lint 错误,提示 Expected to return a value at the end of arrow function array-callback-return
。这样做的标准方法是什么?
最佳答案
map
总是返回一个数组,其元素数与其输入数组相同。
相反,考虑使用 filter
仅在过滤后的输出中包含前 5 个元素:
slideData.slides.filter((slide, index) => {
if( index < 5 ) {
return true;
}
});
或者,如果您有兴趣查找特定的连续元素运行,就像您在本例中所做的那样,只需使用 slice(n, m)
来获取元素 n
到m-1
:
slideData.slice(0, 5)
关于javascript - JS Map返回问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46697356/