gpt4 book ai didi

for-loop - 如何在 CoffeeScript 的 "for in"循环中使用缓存数组的长度?

转载 作者:行者123 更新时间:2023-12-02 22:42:25 24 4
gpt4 key购买 nike

The following CoffeeScript code:

for a in arr
do_something_with arr.length

编译为:

var a, _i, _len;

for (_i = 0, _len = arr.length; _i < _len; _i++) {
a = arr[_i];
do_something_with(arr.length); // I want to use '_len' here
}

是否可以使用 arr.length 的缓存值而不是在每次迭代中计算它?

最佳答案

如果你有一个定义的数组而不是一个范围数组,那么你实际上可以在 block 中使用 _len:

for a in arr
_len == arr.length

然而,这依赖于 CS 内部结构,它可能会在新版本中发生变化。它也不适用于每个阵列。

arr = [0..10]
for a in arr
#this works
console.log _len

但是:

for a in [0..10]
#this doesn't work
console.log _len

我认为如果你想使用数组长度的缓存版本,最好在你的代码中明确地这样做,而不是依赖于 CS 的内部变量名称。

宁愿做:

arrLength = arr.length
for a in arr
doSomethingWith arrLength

关于for-loop - 如何在 CoffeeScript 的 "for in"循环中使用缓存数组的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10613592/

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