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

如何将数组首尾元素及中间部分分别赋值给独立变量与数组

实现方案

方法1:ES6 解构赋值(推荐)

代码最简洁,符合现代JS语法规范:

// 待拆分的数组
const targetArr = ["New York", "Madrid", "Roma"];
// 拆分逻辑
const [firstValue, ...rest] = targetArr;
const lastValue = rest.pop() ?? '';
const middlesValues = rest;

逻辑说明

  • 第一步通过解构取出数组第一个元素赋值给firstValue,剩余所有元素暂存到rest数组
  • 调用pop()取出rest的最后一个元素赋值给lastValue,如果rest为空(原数组长度为1的场景)则默认赋值为空字符串
  • 执行pop后剩下的rest数组就是中间元素,当原数组长度≤2时,rest天然为空,完全匹配需求

不同场景测试结果

  • 原数组长度为3:firstValue = 'New York',middlesValues = ['Madrid'],lastValue = 'Roma'
  • 原数组长度为2:firstValue = '北京',middlesValues = [],lastValue = '上海'
  • 原数组长度为1:firstValue = '广州',middlesValues = [],lastValue = ''
  • 原数组长度大于3:firstValue = 1,middlesValues = [2,3,4],lastValue = 5

方法2:索引取值(兼容ES5及更早环境)

如果需要兼容旧运行环境,可以用索引判断的方式实现:

const targetArr = ["New York", "Madrid", "Roma"];
let firstValue = '';
let middlesValues = [];
let lastValue = '';
const arrLen = targetArr.length;

if (arrLen >= 1) firstValue = targetArr[0];
if (arrLen >= 2) lastValue = targetArr[arrLen - 1];
if (arrLen >= 3) middlesValues = targetArr.slice(1, arrLen - 1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:45:11