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

前端之家收集整理的这篇文章主要介绍了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数组而不修改它.

猜你在找的JavaScript相关文章