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

如何避免数组嵌套?在map生成语句后链式添加元素

解决数组嵌套问题的两种方案

你当前的写法会产生嵌套数组,原因是d3.range().map()返回的本身就是一个数组,直接把它作为元素放进data数组里,自然会形成[对象, 数组]的嵌套结构。下面是两种能实现平级合并且满足链式调用需求的方法:

方法1:使用ES6展开运算符(最简洁)

直接用...展开map生成的数组,让其中的每个元素都成为data的平级元素:

var data = [
    {'id':'1Q19'},
    ...d3.range(21).map(function(v) {
        return {name: v.toString()+'_product', type:'td'} 
    })
];

方法2:链式调用concat()方法

先初始化包含手动硬编码元素的数组,再链式调用concat()合并map生成的数组:

var data = [{'id':'1Q19'}].concat(
    d3.range(21).map(function(v) {
        return {name: v.toString()+'_product', type:'td'} 
    })
);

concat()方法会返回一个新的合并数组,不会修改原初始数组,完全符合链式调用的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:48:18