微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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数组而不修改它.

原文地址:https://www.jb51.cc/js/158664.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐