gpt4 book ai didi

syntax - 在 CoffeeScript 中初始化数组的最聪明方法

转载 作者:行者123 更新时间:2023-12-03 15:07:43 24 4
gpt4 key购买 nike

用特定值初始化数组的最佳方法是什么 0在 CoffeeScript 中。到目前为止我所做的 -

[0..100].map -> 0


arr = []
arr.push(0) while arr.length isnt 100

如果个人觉得第一个会表现不佳,而第二个太冗长,破坏了 CoffeeScript 编程的魅力。

更新 2:
如果性能不是问题,那么我想这也是一个选择。
arr = new Array(10).join(0).split('')

更新 2:如果连接通过 number,以上将比其他选项执行得更好

更新 3:看了几个 JSPerf tests在评论和答案中提到我尝试使用 node.js 自己执行它们。这是奇怪的结果 -
代码 -
    size = 10000000;
key = 1

console.time('splits')
arr1= Array(size + 1).join(key).split('')
console.timeEnd('splits')


console.time('maps')
arr2 = [1..size].map -> key
console.timeEnd('maps')

console.time('loop')
arr3 = []
arr3.push(key) while arr3.length isnt size
console.timeEnd('loop')


console.time('for')
arr4 = (0 for n in [0...size])
console.timeEnd('for')

console.time('for-no-var')
arr5 = (0 for [0...size])
console.timeEnd('for-no-var')


### node- 0.10.15
splits: 162ms
maps: 1639ms
loop: 607ms
for: 659ms
###

有趣的是 拆分和加入 花费的时间要少得多。此外,如果我们真的关心性能,那么我们应该尝试初始化一个非常大的数组,而不是数百个。

最佳答案

还有arr = (0 for [1..100])如果您不想让任何迭代变量泄漏到理解之外,请形成 ;)

关于syntax - 在 CoffeeScript 中初始化数组的最聪明方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com