JavaScript增加最后一个数组元素

时间:2015-03-01 05:48:05

标签: javascript arrays

我正在尝试使用pop()和push()来计算如何增加数组中的最后一个元素。我在增加pop数组后继续获取原始值。

需要发生的是newArray需要等于_array,最后一个元素增加1.例如'0,0,7'将变为'0,0,8'。

非常感谢正确方向的轻微推动。

var someArray = [0,0,7];

   var incrementLastArrayElement = function(_array) {
   var newArray = [];
   var popArray = someArray.pop();
   newArray = someArray.push(popArray++);
   }

console.log(incrementLastArrayElement(someArray));

5 个答案:

答案 0 :(得分:1)

您没有使用_array而且,您没有返回任何内容。你可以在下面做。 _array.length - 1为您提供了使用++进行递增的最后一个索引。

最后,您使用return关键字 返回更新的数组

var incrementLastArrayElement = function(arr) {
    arr[arr.length - 1]++; // increment
    return arr; // return it
}

console.log(incrementLastArrayElement([0,0,7])); // [0,0,8]

如果要返回新数组,只需添加行

即可
arr = arr.slice(0)

位于函数体的顶部,因此arr包含一个新的引用。

答案 1 :(得分:1)

您的代码几乎正确。

你犯了两个错误:

使用++--运算符时,将置于之前,变量执行递增/递减并使用表达式中的新值。将运算符放在变量之后使用表达式中的原始值,然后递增/递减变量。

在致电push时,您正在递增{/ 1}}变量 后推送它,因此推送的值是原始未增加的值。

其次,您正在函数中创建一个新数组,因此原始数组不会被更改。在JavaScript中,数组通过引用传递,因此您可以更改函数内的数组参数

popArray

或更简洁:

var incrementLastArrayElement = function (_array) {
   var lastValue = _array.pop ();
   _array.push(++lastValue);
}

答案 2 :(得分:1)

这是一个过度设计的解决方案:

function incrementLast(array) {
    return array.map(
        function(elt, i, arr) { 
            return elt + (i === arr.length - 1); 
        }
    );
}

这会将输入数组中的每个元素映射到自身,除非它是最后一个元素,在这种情况下它会添加一个(true)。

使用箭头功能稍微更紧凑:

function incrementLast(array) {
    return array.map((elt, i) => elt + (i === array.length - 1));
}

答案 3 :(得分:0)

var someArray = [0,0,7];

   var incrementLastArrayElement = function(_array) {
       var newArr = _array.slice();
       newArr[newArr.length - 1]++;
       return newArr;
   }

console.log(incrementLastArrayElement(someArray));

JSFIDDLE.

答案 4 :(得分:0)

试试这个

var incrementLastArrayElement = function(_array) {             
          _array[_array.length-1]=  _array[_array.length-1]+1;
          return _array   
       }


    console.log(incrementLastArrayElement([0,0,7]));