我有一个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的开头。我该怎么做?
答案 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()方法。