有这样的数组
let data = [[{id: a1},{id: a2}],[{id: b3},{id: b4}],[{id: c5}, {id: c6}]]
怎么能用公共的方法,实现前后位置交换,交换后得到如下数据
let data = [[{id: b3},{id: b4}],[{id: a1},{id: a2}],[{id: c5}, {id: c6}]]
或者
let data = [[{id: a1},{id: a2}],[{id: c5}, {id: c6}][{id: b3},{id: b4}]]
好像已经是第二次遇到这样的问题了,数组元素交换位置不是基本操作吗?
如果要交换 2 和 3 的位置,也就是索引位置 1 和 2 的元素,最简单连脑筋都不需要动的办法
为什么需要中间变量
t
,自己想想。如果你学 JavaScript 语言学得比较好(从问题来看基本上要排除这个可能),可以用解构语法来交换
因为要求是交换前后位置,可以写一个简单的函数,给一个索引 i,交换 i 和 i + 1 的位置。
这样对了吗?一般情况下,但有特殊情况,如果 i 是给的最后一个索引号呢?比如上面的第 3 个索引。这是最容易想到的错误,其实还有索引号小于 0 或者大于最后一个索引的情况。所以需要容错/报错处理。到底是容错还是报错,或者如何容错就要看你准备在出错的时候怎么办。比如现在假设,出错就不做处理
不要问:这里元素都是数,但我要换的元素是一个数组,该怎么办?
数和数组作为元素来说,有区别吗?如果中学学过代数,就能明白,每个元素看作一个整体,不需要去管他的细节。