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

如何将对象数组转换为指定嵌套数组并重复首个元素?

解决对象数组转换并重复首个元素的问题

你已经用map方法完成了对象到数组的转换,差一步就能实现需求啦——只需要在转换后的数组末尾再添加第一个元素的拷贝就行。

先看你原来的代码,运行后得到的是[[[11,21],[31,41],[10,20]]],缺少了最后重复的[11,21]。这里有两种简单的修改方式:

方法一:先转换再追加元素

这种方式逻辑清晰,适合新手理解:

var array1 = [{"a":11,"b":21},{"a":31,"b":41},{"a":10,"b":20}];
// 第一步:把每个对象转换成 [a, b] 格式的数组
const transformedArray = array1.map(item => [item.a, item.b]);
// 第二步:把转换后的第一个元素追加到数组末尾
transformedArray.push(transformedArray[0]);
// 第三步:包上最外层的数组
var array2 = [transformedArray];
console.log(array2); // 输出:[[[11,21],[31,41],[10,20],[11,21]]]

方法二:用扩展运算符一次性拼接

如果想写得更简洁,可以用ES6的扩展运算符,一步完成转换和追加:

var array1 = [{"a":11,"b":21},{"a":31,"b":41},{"a":10,"b":20}];
var array2 = [
  [...array1.map(item => [item.a, item.b]), [array1[0].a, array1[0].b]]
];
console.log(array2); // 同样得到目标结果

两种方法都能实现需求,区别在于第一种分步操作更直观,第二种代码更紧凑。因为这里的元素是数字(值类型),直接引用第一个元素就没问题,不需要考虑深拷贝的问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:37:28