javascript – JS:Array.map不添加到数组

我有一些数据我想使用array.prototype.map进行转换.但是在map函数中,外部函数调用可能会抛出错误.我想捕获此错误,而不是将该特定对象添加到返回的数组.目前我只是返回undefined然后使用Array.prototype.filter清除未定义的值,但这似乎是一种肮脏的方式.

为了澄清,我正在寻找这个功能

['apple','pear','banana','peach'].map(function(fruit){
     if (fruit === 'apple') {
         return undefined;
     }
     return 'I love to eat ' + fruit;
});
// ['I love to eat pear','I love to eat peach','I love to eat banana']

这个的任何现有的实现?我只是以错误的方式解决这个问题吗?

解决方法

如果你不想使用简单的for循环,那么代替map尝试使用reduce这种方式:
var result = ['apple','peach'].reduce(function(prev,curr){
     if (curr === 'apple') {
         return prev;
     }
     prev.push(curr);
     return prev;
},[]);

alert(result);

所以我的想法是,在“异常”的情况下,你只需返回prev数组而不修改它.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...