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

时间:2017-11-07 14:17:55

标签: javascript

现在我正在研究这个功能,以便总结一下。 该数组的示例如下: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); 
}

4 个答案:

答案 0 :(得分:2)

  

我想乱七八糟地说数组[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);

答案 1 :(得分:1)

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

&#13;
&#13;
var array = ['6','2','5'];
array[0] = +array[0] + 1 + '';

console.log(array);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

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

&#13;
&#13;
var array = ['6', '2', '5'];

array[0] = (+array[0] + 1).toString();

console.log(array); 
&#13;
&#13;
&#13;

答案 3 :(得分:0)

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]