看一下这个例子:
let my_array = [1,2,4,5,6,7,8]
test = my_array.map(element=>{
if(element!==1){
return element
}
})
console.log(test)Run Code Online (Sandbox Code Playgroud)
为什么如果语句不匹配,map()函数总是返回一些东西?
我知道映射函数迭代数组的索引。但为什么返回 null 呢?我们说只有当陈述为真时才返回。
我们如何避免map()返回null?
更新:我需要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)
Run Code Online (Sandbox Code Playgroud)
.map将始终创建一个与原始数组中的项目数相同的数组。这就是它的工作原理。如果您不想生成具有相同元素数量的数组,请改用.filter:
let my_array = [1, 2, 4, 5, 6, 7, 8]
test = my_array.filter(element => element !== 1);
console.log(test)Run Code Online (Sandbox Code Playgroud)
.map仅适合将数组的每个元素转换为另一个值,例如:
let my_array = [1, 2, 4, 5, 6, 7, 8]
test = my_array.map(element => element * 2);
console.log(test)Run Code Online (Sandbox Code Playgroud)
如果您需要删除值并转换元素,那么您可以同时使用.filterand .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)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2501 次 |
| 最近记录: |