Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中看到数组的元素处于奇数或偶数位置?_Javascript_Arrays_Math_Numbers - Fatal编程技术网

如何在Javascript中看到数组的元素处于奇数或偶数位置?

如何在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++) {

对于我的程序,我必须在奇数位置将数组的数字加倍,然后,如果该数字超过9,则减去9。如果我必须使用奇数,我可以很容易地使用以下代码(Numero是数组的名称):

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;
});