javascript - 为什么即使条件语句不匹配,map() 函数也总是返回一些东西?_ java 脚本
问题描述
看看这个例子:
let my_array = [1,2,4,5,6,7,8]
test = my_array.map(element=>{
if(element!==1){
return element
}
})
console.log(test)
如果语句不匹配,为什么 map() 函数总是返回一些东西?
我知道 map 函数迭代数组的索引。但为什么返回null?我们说只有当陈述为真时才返回。
我们如何避免 null 返回 map()?
更新:我需要 map() 和 filter() 的组合:
let my_array = [1, 2, 4, 5, 6, 7, 8]
test = my_array
.filter(element => element !== 1)
.map(element => element * 2);
console.log(test)
解决方案
.map
将始终创建一个具有与原始数组相同数量的项目的数组。这就是它的工作原理。如果您不想生成具有相同数量元素的数组,请.filter
改用:
let my_array = [1, 2, 4, 5, 6, 7, 8]
test = my_array.filter(element => element !== 1);
console.log(test)
.map
仅适用于将数组的每个元素转换为另一个值,例如:
let my_array = [1, 2, 4, 5, 6, 7, 8]
test = my_array.map(element => element * 2);
console.log(test)
如果您既需要删除值又需要转换元素,则可以同时使用.filter
and .map
:
let my_array = [1, 2, 4, 5, 6, 7, 8]
test = my_array
.filter(element => element !== 1)
.map(element => element * 2);
console.log(test)
推荐阅读
- android - LiveData 和 Coroutines - 属性必须被初始化或抽象
- c - arr 和 *arr 有什么区别?
- java - 在 Logstash 7.0 中定义常量
- html - 容器上的高度相等,但使用 Display Flex
- c# - How do i dynamically name Linklabels?
- c - 结构内的数组;如何让我的代码更简洁?
- javascript - 将 JSFiddle 与基于 React 的外部库一起使用
- java - 无法使用 Java 通过 CLI 命令创建谷歌云数据流模板
- bash - 如何从文本文件中删除确切的文本?
- ios - 在循环中更改标签字体大小不会更改文本的大小