How to append new array to beginning of multi-dimensional array
本问题已经有最佳答案,请猛点这里访问。
我有一个二维数组,叫做varr。看起来像是…
1 | vArr = [[1, 1], [2, 2], [3, 3]]; |
我要做的是,当一个新数组需要附加到varr的开头时,移动所有数组元素,然后删除varr的最后一个元素以保留其大小(在本例中是3)。例如,如果一个新的元素[4,4]出现了,我想附加到varr,那么这个新的varr应该如下所示。
1 | vArr = [[4, 4], [1, 1], [2, 2]]; |
[4,4]已附加到开头,所有其他元素都已移动,并且已删除超过varr大小3(即[3,3])的任何剩余元素。这是到目前为止我的代码…
1 2 3 4 5 6 7 8 9 10 11 12 | var vArr = [[1, 1], [2, 3], [3, 3]]; var newv = [4, 4]; // New array to append // My attempt at splicing newv to position 0 in vArr array without removing anything vArr = vArr.splice(0, 0, newv); // newv logs to the console successfully, however vArr is undefined for some reason console.log(newv); console.log(vArr); // Get rid of final element (doesn't work because vArr is no longer defined from above) vArr = vArr.pop(); |
我知道拼接行中的语法可能有问题,但我在网上找不到任何有关此处错误的信息。如果要将数组拼接为二维数组,拼接方法必须更改吗?或者它在这种情况下根本不起作用?非常感谢您的帮助!
您可以使用
1 2 3 4 5 | var vArr = [[1, 1], [2, 2], [3, 3]]; var arrToPush = [4, 4]; vArr.unshift(arrToPush); vArr.pop(); console.log(vArr); |
问题在于将EDOCX1的结果(0)分配回
拼接函数还可以从数组中删除项,
所以
在这里,您可以使用解决方案https://jsfiddle.net/fkz9ubug/
1 2 3 4 5 | var vArr = [[1, 1], [2, 3], [3, 3]]; var newv = [4, 4]; vArr.unshift(newv) console.log(vArr); |
文档
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/unshift
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/unshifthttps://www.w3schools.com/jsref/jsref_unshift.asp