javascript - 在数组中的键值对中输出不为空的键值对 JavaScript
问题描述
所以在文件夹数组里面。我想打印出大小不为 null 的文件夹的“名称”。
let folders = [
{
name:'user_name',
size: 5455,
information: ' '
},
{
name:'untitled',
size: 545343,
information: 'no description'
},
{
name:'new_user',
size: null
}
];
因此,我编写了此代码以获取大小不为 null 的文件夹的名称,但是当我对其进行测试时,它只会打印出所有数组。我无法弄清楚我做错了什么。
folders.forEach((item) => {
let info = folders.filter((f) => {
if (f.size !== null);
return item.name
})
console.log(info)
});
解决方案
一个问题是不if (f.size !== null);
应该有一个尾随分号 - 这将使测试毫无意义,因为无论它是否为空,分号都意味着后面的行将被执行。另一个是filter
总是返回数组中的原始项目,如果测试通过 - 对于你正在做的事情,你可以使用filter
(过滤掉空大小)后跟map
(到达name
s):
let folders = [
{
name:'user_name',
size: 5455,
information: ' '
},
{
name:'untitled',
size: 545343,
information: 'no description'
},
{
name:'new_user',
size: null
}
];
console.log(
folders
.filter(({ size }) => size !== null)
.map(({ name }) => name)
);
如果您想在数组的单次迭代中实现它,请同时使用reduce
tofilter
和map
:
let folders = [
{
name:'user_name',
size: 5455,
information: ' '
},
{
name:'untitled',
size: 545343,
information: 'no description'
},
{
name:'new_user',
size: null
}
];
console.log(
folders.reduce((a, { name, size }) => {
if (size !== null) a.push(name);
return a;
}, [])
);
推荐阅读
- python-3.x - Python 3 中 bisect_left 中的索引超出范围
- javascript - Javascript post请求函数返回未定义
- mysql - PHP CodeIgniter 和 JQuery AJAX 使用 jquery 追加表行并将所有表数据插入数据库
- spring-boot - SpringBoot RedirectAttributes 未显示在百里香叶中
- r - R中的闰年一些输出是错误的
- asp.net-core - .net 核心 webapp 和控制台应用程序是否有一致的方法来确定数据文件文件夹的路径?
- php - php-将记录插入数据库
- .net - 错误:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 Authentication Required
- javascript - 如何评估导入其他模块的 JavaScript ES6 模块?
- python - 如何使用嵌套循环反转这种模式?