#牛客在线求职答疑中心# [1,[2,[3,[4,5]]]] 反转为[5,[4,[3,[2,1]]]] js代码
全部评论
```js
const arr1 = [1, [2, [3, [4, 5]]]]
const extract = arr => {
return arr.reduce((p, c) => Array.isArray(c) ? [...p, ...extract(c)] : [...p, c], [])
}
const recover = (ori, target) => {
return ori.map(el => Array.isArray(el) ? recover(el, target) : target.pop())
}
const solution = (arr) => recover(arr, extract(arr))
console.log(JSON.stringify(solution(arr1)));
```
转字符串双指针容易想
一种方法是 json 化后双指针交换位置
还有一种遍历整个数组记录数字然后重新赋值
还有一种,可以将这个数组看作是一个链表,node 的 value 为数组第一个元素,next 为数组的第二个元素,定义数组对象为 node 其他为空,那么这个问题就变成了反转链表的问题
```javascript
function reverseArray(arr) {
return arr.reverse().map(item => Array.isArray(item) ? reverseArray(item) : item);
}
const nestedArray = [1, [2, [3, [4, 5]]]];
const reversedArray = reverseArray(nestedArray);
console.log(reversedArray); // 输出: [5, [4, [3, [2, 1]]]]
```
相关推荐
点赞 评论 收藏
分享


小米集团
| 校招
| 超多精选岗位
点赞 评论 收藏
分享