我有一些数据我想使用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 举报,一经查实,本站将立刻删除。