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

如何将一维数组通过unshift插入到二维数组的每个子数组头部?

解决将一维数组元素插入二维数组每个子数组开头的问题

你当前的代码存在一个问题:unshift(ar1)会把整个ar1数组当作单个元素插入到子数组开头,最终得到的子数组会嵌套另一个数组,和预期结果不符。要实现把ar1的每个元素依次插入到ar2子数组的开头,你可以用以下两种方式修改代码:

方法1:使用ES6扩展运算符(推荐)

扩展运算符...可以把数组的元素逐个展开,作为多个参数传给unshift方法,正好符合需求:

let ar1 = [4, "Purchase Order", "Yoga"];
let ar2 = [
  ["221123-B", 1, "006"],
  ["221123-C", 1, "006"],
  ["221123-D", 1, "006"],
  ["221123-E", 1, "006"]
]

ar2.forEach(subArr => {
  subArr.unshift(...ar1);
});

console.log(JSON.stringify(ar2));

方法2:兼容旧环境的apply写法

如果需要兼容不支持ES6的环境,可以用apply方法,它会把第二个参数的数组元素拆解成参数列表传入目标函数:

ar2.forEach(subArr => {
  Array.prototype.unshift.apply(subArr, ar1);
});

两种方法运行后,都会得到你预期的结果:

[
  [4, "Purchase Order", "Yoga", "221123-B", 1, "006"],
  [4, "Purchase Order", "Yoga", "221123-C", 1, "006"],
  [4, "Purchase Order", "Yoga", "221123-D", 1, "006"],
  [4, "Purchase Order", "Yoga", "221123-E", 1, "006"]
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:55:21