繁体   English   中英

javascript总结数组中的值而不是数组中的所有值

[英]javascript sum up value in array and not all values in array

现在我正在研究这个功能,以便总结一下。 该数组的示例如下: var array = ['5','2','8']; 我想乱扔一下array[0] +1或类似的东西。 我看一下reduce,但是它总结了所有的值,这不是它应该做的。 应该得出的是当sum为1时,你想要数组中的第一个值。 在这种情况下,第一个是5: 5 + 1 = 6 然后6应该从它出来并替换阵列中5的位置。

这是我现在所得到的一个例子。

 var array = ['6','2','5']; for(var i = 0; i < array.length; i++){ array = array[i]; var sum = 1; array = sum + array[0]; console.log(array); } 

我想乱扔一下[0] +1或类似的东西。

看起来你想要将所有值增加1

尝试这个appoach

 var array = ['6','2','5']; array = array.map( a => String( Number(a) + 1 ) ); console.log(array); 

如果要将它们保留为Number而不是String ,则使用String构造函数删除包装

 var array = ['6','2','5']; array = array.map( a => Number(a) + 1 ); console.log(array); 

编辑 - 基于评论和问题更新

不,我想在数组中只添加一个值,而不是全部

应该得出的是当sum为1时,你想要数组中的第一个值。

那么就不需要迭代了

 var array = ['6','2','5']; var sum = 1; array[ sum - 1 ] = String( Number( array[ sum - 1 ] ) + 1 ); console.log(array); 

您可以使用一元加运算符将第一个元素array[0]转换为数字而不是添加1,最后添加''以使其再次成为字符串:

 var array = ['6','2','5']; array[0] = +array[0] + 1 + ''; console.log(array); 

对于单个值,您可以获取值(使用一元加上+来表示数字)并递增它(再次生成一个字符串),然后将其分配给相同的索引。

 var array = ['6', '2', '5']; array[0] = (+array[0] + 1).toString(); console.log(array); 

Array.prototype.addScalar=function(value){
   var cloneArray=[];
   this.forEach(function(entry){
     //it is weird that your array is ['1', '2'] instead of [1,2]
     //but this "if" handles it
     if ( typeof(entry)==='string') {
        cloneArray.push(parseInt(entry)+value);
     } else {
        cloneArray.push(entry+value);
     }
   });
   return cloneArray;
}

['1',2,3].addScalar(1) //[2, 3, 4]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM