作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个类似于[A,B,C,D]
的数组。我想在 for 循环中访问该数组,如
var arr = [A,B,C,D];
var len = arr.length;
for(var i = 0; i<len; i++){
0 - A,B,C
1 - B,C,D
2 - C,D,A
3 - D,A,B
}
我想像在 JavaScript 中那样访问它,有什么想法吗?
最佳答案
回答主要问题,有人可以使用模块化算法以循环方式访问数组。这可以在 JavaScript 中使用取模运算符 (%
) 和变通方法来实现。
给定一个长度为n
的数组arr
和一个存储在其中的值val
,该值将通过访问索引获得i
,循环方式和更安全的方式来访问数组,忽略 i
的值和符号,将是:
let val = arr[(i % n + n) % n];
这个小技巧是必要的——有人不能直接使用模数结果——因为 JavaScript 总是将模数运算计算为被除数(第一个操作数)和除数(第二个操作数)之间除法的余数,而不考虑它们的符号但将股息的符号分配给余数。该行为并不总是会产生所需的模块化算法“环绕”效果,并可能导致错误访问数组的负数位置。
更多信息引用:
关于javascript - 如何在 JavaScript 中以循环方式访问数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17483149/
我是一名优秀的程序员,十分优秀!