如何在Javascript中看到数组的元素处于奇数或偶数位置?
对于我的程序,我必须在奇数位置将数组的数字加倍,然后,如果该数字超过9,则减去9。如果我必须使用奇数,我可以很容易地使用以下代码(Numero是数组的名称):如何在Javascript中看到数组的元素处于奇数或偶数位置?,javascript,arrays,math,numbers,Javascript,Arrays,Math,Numbers,对于我的程序,我必须在奇数位置将数组的数字加倍,然后,如果该数字超过9,则减去9。如果我必须使用奇数,我可以很容易地使用以下代码(Numero是数组的名称): for(变量k=0;k9{ var nuovoNum=数值[k]-9; Numero[k]=努沃努姆; } } } 问题是我不需要在奇数上做,我需要在奇数位置上做,比如第一个,第三个,第五个,第七个,第九个等等。我怎么做?非常感谢。您可以将代码更改为 for (var k = 0; k < Numero.length;k++) {
for(变量k=0;k9{
var nuovoNum=数值[k]-9;
Numero[k]=努沃努姆;
}
}
}
问题是我不需要在奇数上做,我需要在奇数位置上做,比如第一个,第三个,第五个,第七个,第九个等等。我怎么做?非常感谢。您可以将代码更改为
for (var k = 0; k < Numero.length;k++) {
if ( (k+1)&1) {
var doppioNumero = Numero[k] * 2;
Numero[k] = doppioNumero;
if ( Numero[k] > 9) {
var nuovoNum = Numero[k] - 9;
Numero[k] = nuovoNum;
}
}
}
for(变量k=0;k9{
var nuovoNum=数值[k]-9;
Numero[k]=努沃努姆;
}
}
}
这将在奇数位置检查要检查奇数位置,只需检查k(模)2的值:
for(变量k=0;k9{
var nuovoNum=数值[k]-9;
Numero[k]=努沃努姆;
}
}
}
用于(变量i=0;i
您可以使用map而不是for循环
Numero.forEach((v, k, arr)=>{
if(k%2==1) arr[k]=arr[k]*2 % 9;
});
对于(var i=1;i
只要在k上做就行了,因为它是位置,更准确地说是k+1你说的“奇数位置”是什么意思?应该设置哪些具体的数字索引?“第一个数字”是指0
还是1
?什么是输入数组和预期结果?请参见-9
,如果您试图获取最后一位数字,则似乎是错误的。例如11-9是2。要获得最后一位数字,您可以使用Numero[i]=Numbero[i]*2%10
我会说k+1,请您解释一下您的答案中的确切含义和用法?文档不是很有用。它检查是否设置了第0位,因为奇数设置了第0位,而偶数设置了第0位。使用&比使用模除更好,速度更快。没有人知道,但我可以问一下为什么您更改了接受的解决方案吗?在需要的数字上进行迭代并不比在所有数字上进行迭代+另一种处理好吗?我不反对你@marvel308:)只想知道为什么我们应该从0开始,而不是从1开始。。。0是第一个位置它应该从0开始,因为JS中的索引是从0开始的,而不是1。他说的是“奇数位置”,所以第一个位置是奇数,即0--“我必须在奇数位置的数字上这样做,比如第一个数字,第三个,第五个,第七个”--如果这个数字在。。。说号码是18。。。答案应该是18-9=9。。。但方程给出的是0。问题是如果数字大于9,用9减去它。。。
for (var k = 0; k < Numero.length;k++) {
if ( k % 2) != 0) {
var doppioNumero = Numero[k] * 2;
Numero[k] = doppioNumero;
if ( Numero[k] > 9) {
var nuovoNum = Numero[k] - 9;
Numero[k] = nuovoNum;
}
}
}
for (var i = 0; i < Numero.length; i += 2) {
Numero[i] = (Numero[i] * 2) % 9;
}
Numero.forEach((v, k, arr)=>{
if(k%2==1) arr[k]=arr[k]*2 % 9;
});