你会使用数组吗?Map,根据条件删除它所作用的元素
Can you use Array.map to get rid of the elements it acts on based on a condition?
我想知道,假设我有一个像这样的数组:
var arr = [1,2,3,4]
可不可以这样做:
arr.map(function(val, index, arr){
if(val === 2){
return; //I want to return nothing
} else {
return val *2;
}
});
这是我想要得到的:
[2,6,8]
我实际得到的:
[2, undefined, 6, 8]
我知道这种行为是正确的,但是我想知道如果可能的话,我如何使用map来达到我想要的结果。从本质上讲,我希望不返回的元素就像它们从未在数组中存在过一样。
可以先对数组进行筛选,然后再进行映射。
var arr = [1,2,3,4];
arr = arr.filter(function(val) {
return val !== 2;
}).map(function(val) {
return val * 2;
});
在ES6中,它是如此容易和可读:
[1,2,3,4].filter(i => i !== 2).map(i => i * 2);
相关文章:
- 在特定条件下从存储在localStorage中的阵列中删除对象
- 正则表达式条件来删除元素
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- jTable条件显示隐藏基于数据所有者的编辑和删除按钮
- 如何按条件删除对象中的对象
- gmaps.js删除基于特定条件的标记
- 根据事件有条件地阻止事件删除
- 根据条件删除数据行
- 根据条件从数组中删除对象
- 使用 OR 条件删除带有猫鼬的 MongoDB 中的文档
- Agularjs ng-class:如果其他条件变为真,则删除类
- 使用 jQuery 克隆表单,并添加和删除元素条件
- 如何在具有某些条件的情况下从列表中删除重复项,下划线.js
- 从带有条件的数组中删除字符串
- 根据条件在 JQuery 表单插件中提交回调之前删除项目
- 在给定条件下使用 jquery 删除类,以便对子菜单进行专有对齐
- 需要删除订单通过过滤 ng 根据条件重复
- 根据一系列字符串条件删除行
- 有条件地删除对象的属性
- yuglify JavaScript压缩器删除条件编译