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吗?非常感谢。忘记了这样一件基本的事情:-)