JS如何使用slice获取数组末尾按DESC降序排列的指定数量元素
正确实现方法
直接调用slice取末尾元素后再执行reverse反转即可,完整代码如下:
const originArr = [1, 2, 3, 4, 5, 6]; // slice(-3) 提取数组最后3位,返回新数组 [4,5,6] // reverse() 反转新数组得到降序结果,不会修改原数组 const res = originArr.slice(-3).reverse(); console.log(res); // 输出 [6, 5, 4]
原理说明
slice方法传入负整数-3时,会从数组倒数第3位开始截取到数组末尾,得到顺序和原数组一致的子数组[4,5,6]- 由于
slice返回的是浅拷贝的新数组,后续调用reverse只会修改这个新子数组的顺序,不会影响原数组
如果需要兼容数组长度不足3的场景,上述写法也可以正常执行:当数组长度小于3时,slice(-3)会返回整个数组,反转后即可得到全量降序结果。
内容的提问来源于stack exchange,提问作者Dmitry
相关产品推荐
相关产品推荐

