如果我有一个数组数组如下:
[ [ A0 , B0 , C0 , D0 , E0 ],
[ A1 , B1 , C1 , D1 , E1 ],
[ A2 , B2 , C2 , D2 , E2 ] ] // array of 3x5
我希望获得一个新的子集数组数组,如下所示:
[ [ A0 , B0 , C0 ],
[ B1 , C1 , D1 ],
[ C2 , D2 , E2 ] ] //array of 3x3
这意味着sliceLength = 3,但怎么能这样做呢?是否更好地使用拼接(与原件重复,然后删除不需要的部分),切片和/或推送?
这就是我到目前为止所做的,但语法很接近:
var newMega = [];
var sliceLength = 3;
for (var i=0; i<originalMatrix.length; i++) {
var inner = originalMatrix.slice(i, sliceLength); // Here is the issue
newMega.push(inner);
}
看起来语法会在整个originalMatrix上调用slice,而不知道它应该切片的嵌套数组的哪个索引。它应该是originalMatrix[i].slice(i, sliceLength)
吗?