将元素添加到数组的开头

时间:2017-05-02 22:28:34

标签: javascript arrays

我有一个JS数组:

var car_type_1 = [12,16,23,31,33,34,39,45,49,54,59,62,62,62,63,63,64,66,69,71,73,75,78,80,82,85,87,89,91,94,95];
var car_type_2 = [17,20,28,35,37,38, and so on];

我创建了另一个数组,用于存储旧数组中连续数字之间的减去值:

    function diff(arr) {
      return arr.slice(1).map(function(n, i) { return n - arr[i]; });
    }

var car_type_1_diff = diff(car_type_1);
//so on

很明显,与旧阵列相比,新阵列的元素减少了1个。我想要做的是将旧数组的第一个数字添加到新数组中,因此它应该是:

  car_type_1_diff = [**12**, 4, 7, 8, 2, 1, 5, 6, 4, 5, 5, 3, 0, 0, 1, 0, 1, 2, 3, 2, 2, 2, 3, 2, 2, 3, 2, 2, 2, 3, 1] 

12应该被推到新数组1的开头。我该怎么做?

3 个答案:

答案 0 :(得分:3)

在ES6中,在构建新数组car_type_1_diff时,您也可以像var car_type_1_diff = [12, ...diff(car_type_1)]一样使用spread operator:{{1}}

答案 1 :(得分:2)

是的,您可以使用unshift方法。

参考文档中的示例:

var arr = [1, 2];
arr.unshift(0); // result of call is 3, the new array length
// arr is [0, 1, 2]

arr.unshift(-2, -1); // = 5
// arr is [-2, -1, 0, 1, 2]

arr.unshift([-3]);
// arr is [[-3], -2, -1, 0, 1, 2]

答案 2 :(得分:0)

可能您正在寻找unshift()方法。

相关问题