Javascript 获取数组中从for循环到for循环的奇数位置上的每个元素
我试图将数组中奇数位置的每个元素都推到一个数组中,对于偶数位置的元素也是如此。例如:Javascript 获取数组中从for循环到for循环的奇数位置上的每个元素,javascript,arrays,for-loop,foreach,Javascript,Arrays,For Loop,Foreach,我试图将数组中奇数位置的每个元素都推到一个数组中,对于偶数位置的元素也是如此。例如: var arr = [a, b, c, d, e, f, g]; //Would give me this var odd = [a, c, e, g]; var even = [b, d, f]; 我有一个与for循环一起工作的代码,它如下所示: for (var i=0;i<arr1.length;i++){ if ((i+2)%2==1) { even.push(arr1[i]);
var arr = [a, b, c, d, e, f, g];
//Would give me this
var odd = [a, c, e, g];
var even = [b, d, f];
我有一个与for循环一起工作的代码,它如下所示:
for (var i=0;i<arr1.length;i++){
if ((i+2)%2==1) {
even.push(arr1[i]);
} else {
odd.push(arr1[i]);
}
}
但这不起作用,而不是输出:
even = [ 1, 2, 8, 6 ];
odd = [ 1, 2, 3, 4 ];
它输出这个,这是错误的:
even = [ 2, 2, 8, 4, 6 ];
odd = [ 1, 1, 3 ];
因此,它不输出数组中奇数或偶数位置的元素,而是输出奇数或偶数的元素
提前谢谢 索引作为第二个参数传递给回调。您需要替换此:
arr1.forEach(x => {
if((x) % 2 == 0) {
even.push(x);
} else {
odd.push(x);
}
});
据此:
arr1.forEach((x, i) => {
if(i % 2 == 0) {
even.push(x);
} else {
odd.push(x);
}
});
索引作为第二个参数传递给回调。您需要替换此:
arr1.forEach(x => {
if((x) % 2 == 0) {
even.push(x);
} else {
odd.push(x);
}
});
据此:
arr1.forEach((x, i) => {
if(i % 2 == 0) {
even.push(x);
} else {
odd.push(x);
}
});
“
if((i+2)%2==1){偶数.push(arr1[i]);
”这里根本没有指向+2
的意义。.forEach()
将索引作为回调的第二个参数,因此使用它代替x
。arr1.forEach((x,i)=>{if(i%2==0){/code>首先您必须确定“偶数”和“奇数”的含义。”在您的第一个代码块中,您似乎基于对位置(第一位置=索引0=奇数)的非技术感知而使用了“偶数”和“奇数”,而不是索引的文字均匀性/奇数(第一位置=索引0=偶数)。但是您的forEach
将其反转。“如果((i+2)%2==1){偶数推送(arr1[i]);
”这里的+2
没有任何意义。.forEach()
为回调提供了一个索引作为第二个参数,因此使用它而不是x
。arr1.forEach((x,i)=>{如果(i%2==0){
首先,您必须确定“偶数”和“奇数”的含义。在您的第一个代码块中,您似乎使用了“偶数”“奇数”基于对位置的非技术感知(第一位置=指数0=奇数),而不是指数的文字均匀度/奇数(第一位置=指数0=偶数).但是你的forEach
颠倒了这一点。我会接受答案,但它不会让我马上做,我必须等9分钟。我会接受答案,但它不会让我马上做,我必须等9分钟。