javascript - 为什么 Array .filter 方法返回空数组?

标签 javascript arrays

下面的内容真的让我感到困惑,我试图过滤 musicData 数组,使其仅包含艺术家+姓名长度小于 25 的内容。我已经通过迭代等注销了,一切看起来都很好,所以我'我完全困惑为什么它返回一个空数组。

任何帮助将不胜感激。

const musicData = [
    { artist: 'Adele', name: '25', sales: 1731000 },
    { artist: 'Drake', name: 'Views', sales: 1608000 },
    { artist: 'Beyonce', name: 'Lemonade', sales: 1554000 },
    { artist: 'Chris Stapleton', name: 'Traveller', sales: 1085000 },
    { artist: 'Pentatonix', name: 'A Pentatonix Christmas', sales: 904000 },
    { artist: 'Original Broadway Cast Recording', name: 'Hamilton: An American Musical', sales: 820000 },
    { artist: 'Twenty One Pilots', name: 'Blurryface', sales: 738000 },
    { artist: 'Prince', name: 'The Very Best of Prince', sales: 668000 },
    { artist: 'Rihanna', name: 'Anti', sales: 603000 },
    { artist: 'Justin Bieber', name: 'Purpose', sales: 554000 }
];

var totalAlbumSales=musicData.filter((curr) => {
    curr.artist.length+curr.name.length <25
})

最佳答案

您忘记了 return 关键字来指示应返回到新数组的内容。如果没有它,您只是执行一条语句。

由于确定过滤数组中应包含哪些内容的逻辑很容易由许多语句组成,因此需要 return 关键字来明确指示结果中包含哪些内容。

请参阅有关 Array.filter() 的文档

const musicData = [
    { artist: 'Adele', name: '25', sales: 1731000 },
    { artist: 'Drake', name: 'Views', sales: 1608000 },
    { artist: 'Beyonce', name: 'Lemonade', sales: 1554000 },
    { artist: 'Chris Stapleton', name: 'Traveller', sales: 1085000 },
    { artist: 'Pentatonix', name: 'A Pentatonix Christmas', sales: 904000 },
    { artist: 'Original Broadway Cast Recording', name: 'Hamilton: An American Musical', sales: 820000 },
    { artist: 'Twenty One Pilots', name: 'Blurryface', sales: 738000 },
    { artist: 'Prince', name: 'The Very Best of Prince', sales: 668000 },
    { artist: 'Rihanna', name: 'Anti', sales: 603000 },
    { artist: 'Justin Bieber', name: 'Purpose', sales: 554000 }
];

var totalAlbumSales=musicData.filter((curr) => {
    return curr.artist.length + curr.name.length < 25
})

console.log(totalAlbumSales);

关于javascript - 为什么 Array .filter 方法返回空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49945602/

相关文章:

javascript - 对 JavaScript 闭包的工作原理感到困惑

python - 如何有效过滤矩阵每行的最大元素

php - 使用对象访问 Variable 变量

javascript - 改变图像src jquery动画

javascript - javascript MSE可以从中间播放分段的mp4吗?

javascript - WebKit/Safari 的控制台 API 在哪里?

PHP - 如何将查询结果放入数组中?

javascript - 更改 Javascript 的 CanvasJS 中的字体

c++ - 将对象数组、对象的数量和所需的术语传递给函数

C++:堆栈上的未初始化(?)数组(关于 OpenGL 的示例)