如何迭代系列:1,-2,3,-4,5,-6,7,-8.
How to iterate over the series: 1, -2, 3, -4, 5, -6, 7, -8, ...?
您将如何在Javascript/jQuery中迭代以下系列:
1, -2, 3, -4, 5, -6, 7, -8, ...
以下是我的操作方法:
n = 1
while (...) {
n = ((n % 2 == 0) ? 1 : -1) * (Math.abs(n) + 1);
}
有没有更简单的方法?
您可以保留两个变量:
for (var n = 1, s = 1; ...; ++n, s = -s)
alert(n * s);
这是更简单的
x = 1;
while (...) {
use(x);
x = - x - x / Math.abs(x);
}
或
x = 1;
while (...) {
use(x);
x = - (x + (x > 0)*2 - 1);
}
或者更简单的(如果你不需要真正"增加"变量,只需要使用值)
for (x=1; x<n; x++)
use((x & 1) ? x : -x);
这看起来差不多是对的,并不比这简单多少。尽管如果您从n = 1
而不是n % 2 == 0
开始,则可以使用n < 0
,这通常是一种较慢的操作。
否则,您将需要两个变量。
怎么样:
var n = 1;
while(...)
n = n < 0 ? -(n - 1) : -(n + 1);
您可以始终使用以下方法:
for (var i = 1; i < 8; i++) {
var isOdd = (i % 2 === 1);
var j = (isOdd - !isOdd) * i;
}
顺便说一句,这类似于在JavaScript:中获得数字的符号(-1、0或1的三态)
var sign = (num > 0) - (num < 0)
for (var n = 1; Math.abs(n) < 10; (n ^= -1) > 0 && (n += 2))
console.log (n);
一些比特操作-怎么样
n = 1;
while(...)
{
if(n&1)
cout<<n<<",";
else
cout<<~n+1<<",";
}
没有什么比这更棒的了!!
怎么样:
while (...)
{
if (n * -1 > 0) { n -= 1; }
else { n += 1; }
n *= -1;
}
似乎是最简单的方法。
相关文章:
- 如何在javascript中迭代数字列表
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 如何迭代Array.prototype函数
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在ejs-partial中对JSON对象进行迭代
- 如何在DataTables 2.1中迭代对象数组
- 使用递归属性迭代保留属性结构
- 正在停止.在jquery中的特定时间间隔内,每次迭代的每次执行
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- 主干-从模板中迭代的集合中获取特定的模型
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 什么's是在javascript中迭代项的最佳方式
- 为什么这只是迭代 HTMLCollection 的奇怪元素
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- jQuery-迭代不正确?(太长,无法执行)
- 每个$.,循环获胜't逐个迭代HTML元素
- 如何在Jquery中迭代JSON数组
- 打字稿找不到名称“可迭代迭代器”