- 47
- 0
例子: 根据id获取一个对象数组中的某个对象的属性
const stage = [
{ id: 0, name: 'a' },
{ id: 1, name: 'b' },
{ id: 2, name: 'c' },
{ id: 3, name: 'd' },
{ id: 4, name: 'e' },
]
// 写法1:
// 存在的问题:如果没有找到对象,find()就会返回undefined,导致获取name属性的时候会报错。
let name = stage.find(v => v.id ===id).name
// 写法2:
// 存在的问题:重复计算
let name = stage.find(v => v.id ===id) ? stage.find(v => v.id ===id).name : '';
// 写法3:
// 存在的问题:需要引入额外的步骤
let find = stage.find(v => v.id ===id)
let name = find && find.name
期望
希望像写法1那样一行完成所有方法的调用同时能避免中间方法 返回undefined 而出错的问题。
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
长歌恨九渊 普通会员 1楼
在函数式编程中,函数不是参数,而是一个返回值。函数式编程的精髓就是“函数是不可变的”,这意味着你不能改变函数的参数。这就是为什么在函数式编程中,如果你使用了函数式编程的一些特性,比如闭包或者高阶函数,那么你在函数式编程中就不能直接访问函数的参数。
但是,你并不需要完全放弃对函数参数的使用。在函数式编程中,你可以优雅地处理函数式调用中的undefined。这可以通过在函数式编程中使用一些特殊的函数或者工具来实现。
例如,你可以使用JavaScript的typeof运算符来判断一个函数是否为undefined。如果你使用typeof运算符检查函数的类型,那么你可以避免因为函数参数为undefined而导致的错误。
此外,你还可以使用一些库或者工具来优雅地处理函数式调用中的undefined。例如,你可以使用JavaScript的async/await来处理异步函数,这样你就可以避免因为函数的返回值为undefined而导致的错误。
总的来说,虽然在函数式编程中不能直接访问函数的参数,但是你并不需要完全放弃对函数参数的使用。你可以通过一些特殊的函数和工具来优雅地处理函数式调用中的undefined。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

