You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript实现将数组最后一位元素移至首位的解决方案

TypeScript实现:将数组最后一个元素移至首位

这里有几种实用的实现方案,你可以根据自己的场景灵活选择:

方案1:直接修改原数组(可变方式)

如果不需要保留原数组的初始状态,用pop()和unshift()的组合是最直观的方式:

let column = ["generic complaint", "epidemic complaint", "epidemic1 complaint", "epidemic2 complaint", "bal vivah", "name"];

// 取出最后一个元素,同时从原数组中移除它
const lastElement = column.pop();

// 避免空数组场景下添加undefined,先判断元素是否存在
if (lastElement) {
  column.unshift(lastElement);
}

// 此时 column 即为目标数组:["name","generic complaint", "epidemic complaint", "epidemic1 complaint", "epidemic2 complaint", "bal vivah"]

优点:代码简洁易懂,操作直接,对于常规长度的数组性能完全够用(unshift的时间复杂度为O(n),但日常开发中几乎不会有性能瓶颈)。

方案2:创建新数组(不可变方式)

如果需要保留原数组不变,推荐用解构赋值的方式,更契合函数式编程的风格:

const originalColumn = ["generic complaint", "epidemic complaint", "epidemic1 complaint", "epidemic2 complaint", "bal vivah", "name"];

// 解构分离出最后一个元素和其余所有元素
const [...restElements, lastElement] = originalColumn;

// 拼接生成新数组
const newColumn = [lastElement, ...restElements];

这种方式下originalColumn会保持初始状态不变,newColumn就是你需要的结果,TypeScript会自动推断数组类型,无需额外声明。

方案3:使用slice方法创建新数组

另一种不可变实现方式,通过slice()截取数组片段来组合新数组:

const originalColumn = ["generic complaint", "epidemic complaint", "epidemic1 complaint", "epidemic2 complaint", "bal vivah", "name"];

// 处理空数组边界情况,防止获取到undefined
const newColumn = originalColumn.length 
  ? [originalColumn[originalColumn.length - 1], ...originalColumn.slice(0, -1)]
  : [...originalColumn];

originalColumn.slice(0, -1)会返回原数组中除最后一个元素外的所有内容,再和最后一个元素拼接成目标数组。

内容的提问来源于stack exchange,提问作者vinuta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:28:20