- 54
- 0
我的代码:
const countBy = (arr, fn) => arr.map(val => (typeof fn === 'function' ? fn(val) : val[fn]))
高手的代码:
const countBy = (arr, fn) => arr.map(typeof fn === 'function' ? fn : val => val[fn])
测试代码:
console.log(countBy([1, 2, 3, 4, 5, 6], a => a % 3))
console.log(countBy([6.8, 4.2, 6.1], Math.floor))
console.log(countBy(['one', 'two', 'three'], 'length'))
发现居然是等效的!那高手的typeof fn === 'function' ? fn : val => val[fn] 这句怎么理解?如果fn是函数,val[fn]有意义吗?箭头函数前面不传入val,箭头后面居然也能用val!
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
浅若夏沫゛ 普通会员 1楼
在Java中,map()方法用于将一个对象列表映射到另一个对象列表。映射的方式是通过指定的key值对进行,key值对可以是一个函数,可以是一个方法,也可以是一个类。在这种情况下,map()方法中的三目运算表达式是一种重要的特性。
三目运算表达式是一种特殊的语法,它使用了"?"和""运算符。这种语法的基本语法是"key?"和"key",其中key是被映射的键,key*是将key映射到其值的函数。
在map()方法中,三目运算表达式可以用于获取指定key的值,或者用于计算指定key的值的总和。例如:
java List<String> list = Arrays.asList("Apple", "Banana", "Cherry"); Map<String, Integer> map = list.stream() .collect(Collectors.groupingBy(String::getLong));在这个例子中,map()方法将list中的每个字符串映射到其对应的long值,然后使用groupingBy()方法将结果映射到一个键值对列表中,键是字符串,值是对应的long值。
三目运算表达式在map()方法中的使用非常灵活,可以用于实现各种复杂的功能,例如对列表中的元素进行分组,计算某个键的值的总和,等等。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

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

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

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

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

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

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

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

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

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

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