Javascript forEach内部条件

Javascript forEach内部条件,javascript,arrays,foreach,Javascript,Arrays,Foreach,我有两个阵列: firstArray = [1, 2, 3, 4]; secondArray = [5, 6, 7, 8]; 我必须使用它们的元素来计算forEach中的另一个元素 _.forEach(firstArray, (data, i) => { myValue: firstArray[i] + secondArray[i] }); 这个很好用。但是我想一直忽略第二个数组的最后一个元素。因此在这种情况下,对于i=3,结果应该是4,而不是4+8,忽略第二个数组的最后一个值 我知道

我有两个阵列:

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];
我必须使用它们的元素来计算forEach中的另一个元素

_.forEach(firstArray, (data, i) => {
myValue: firstArray[i] + secondArray[i]
});
这个很好用。但是我想一直忽略第二个数组的最后一个元素。因此在这种情况下,对于
i=3
,结果应该是
4
,而不是
4+8
,忽略第二个数组的最后一个值

我知道使用
if
语句是行不通的,但有没有办法做到这一点

我的意思是在forEach中,在函数不起作用之前删除最后一个元素

更新:我收到了一些很好的答案,但他们都使用了不同于
的forEach
。我想知道是否有使用此功能的方法。

使用
map

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];
var output = firstArray.map( ( s, i, ar ) => s + (i == ar.length - 1 ?  0 : secondArray[i] ) );
更新:我收到了一些很好的答案,但他们都在使用 与forEach不同的东西。我想知道是否有 使用此函数与否的方法

使用
forEach
,您需要另一个数组来捕获总和

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];
var myValue = [];
firstArray.map( ( s, i, ar ) => myValue.push( s + (i == ar.length - 1 ?  0 : secondArray[i] ) ) );
现在
myValue

[6,8,10,4]

因此
map
似乎是一种不太详细的方法。

使用
map

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];
var output = firstArray.map( ( s, i, ar ) => s + (i == ar.length - 1 ?  0 : secondArray[i] ) );
更新:我收到了一些很好的答案,但他们都在使用 与forEach不同的东西。我想知道是否有 使用此函数与否的方法

使用
forEach
,您需要另一个数组来捕获总和

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];
var myValue = [];
firstArray.map( ( s, i, ar ) => myValue.push( s + (i == ar.length - 1 ?  0 : secondArray[i] ) ) );
现在
myValue

[6,8,10,4]


因此,
map
似乎是一种不太详细的方法。

您可以减少并映射数组

var firstArray=[1,2,3,4],
secondArray=[5,6,7,8],
result=[firstArray,secondArray].reduce((a,b)=>a.map((v,i)=>v+b[i]);

控制台日志(结果)您可以减少并映射数组

var firstArray=[1,2,3,4],
secondArray=[5,6,7,8],
result=[firstArray,secondArray].reduce((a,b)=>a.map((v,i)=>v+b[i]);
控制台日志(结果)我会这样做:

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];

for (let i = 0; i < firstArray.length; i++){
    if(i === firstArray.length - 1) {
         myValue = firstArray[i];
    } else {
        myValue = firstArray[i] + secondArray[i]
    }
}
firstArray=[1,2,3,4];
secondArray=[5,6,7,8];
for(设i=0;i
我会这样做:

firstArray = [1, 2, 3, 4];
secondArray = [5, 6, 7, 8];

for (let i = 0; i < firstArray.length; i++){
    if(i === firstArray.length - 1) {
         myValue = firstArray[i];
    } else {
        myValue = firstArray[i] + secondArray[i]
    }
}
firstArray=[1,2,3,4];
secondArray=[5,6,7,8];
for(设i=0;i
您可以使用
array.length
检查
i
是否是第二个数组的最后一个元素

我不太理解您的
forEach
代码,但您可以在其中使用三元运算符:

_.forEach(firstArray, (data, i) => {
    myValue: firstArray[i] + (i === secondArray.length - 1 ? 0 : secondArray[i])
});

您可以使用
array.length
检查
i
是否是第二个数组的最后一个元素

我不太理解您的
forEach
代码,但您可以在其中使用三元运算符:

_.forEach(firstArray, (data, i) => {
    myValue: firstArray[i] + (i === secondArray.length - 1 ? 0 : secondArray[i])
});

检查i==3或i==firstArray.length然后执行firstArray[i]+0查看答案以了解如何使用
forEach
。检查i==3或i==firstArray.length然后执行firstArray[i]+0查看答案以了解如何使用
forEach
。不应该是
i===firstArray.length-1
?非常感谢。忘记了这样一个基本的东西:-)它不应该是
i==firstArray.length-1吗?非常感谢。忘记了这样一件基本的事情:-)