javascript - 在 JavaScript/TypeScript 中使用数组索引创建函数数组
问题描述
如何创建一个可以使用的多个函数的数组,b[2]()
这样我就不需要硬编码返回值,而只需使用数组索引代替const a
?
const a = [...Array(100)]
const b= [()=>{return 0}, ()=>{return 1}, ()=>{return 2},()=>{return 3}]
expect(b[2]()).equal(2)
解决方案
您可以使用Array.from
方法并为每个元素返回另一个将返回索引的函数。
const f = Array.from(Array(100), (_, i) => () => i)
console.log(f[2]())
console.log(f[99]())
如果您已经有一个元素数组,那么您可以使用map
const arr = ['foo', 'bar']
const f = arr.map(e => (a) => `${a} ${e}`)
console.log(f[0]('Value:'))
推荐阅读
- python - 如何在 discord.py 中识别用户
- javascript - 测试点击事件
- delphi - Delphi RIO - 当 Ansi 字符串是 const 数组的一部分时,Ansi 到字符串转换不起作用
- javascript - 映射对象数组以计算特定对象属性的值
- python - 熊猫根据另一列增加列值
- java - 在 HashMap 实现中调整数组表的大小
- javascript - Javascript 错误地计算大整数
- arrays - 动态初始化二维数组,只知道它在 C 中的列大小
- webpack - 如何在带有 webpack laravel mix 的 sass 文件中使用 google font v2 API import url?
- java - 没有整个 Spring Boot 应用程序的 Spring data JPA