我在Javascript中有一个二维数组。
每行都有不同的长度,如果需要的话,我需要在缺少列的行中添加列?
为了给您一个更好的主意,这是我的数据结构:
const data = [];
data.push([
{lbl: "Val-1-1", rowspan: 2}, // Index 0
{lbl: "Val-1-2", rowspan: 2},
{lbl: "Val-1-3", rowspan: 2},
{lbl: "Val-1-4", rowspan: 2},
{lbl: "Val-1-5", rowspan: 2},
{lbl: "Val-1-6", rowspan: 2},
{lbl: "Val-1-7", rowspan: 2},
{lbl: "Val-1-8", rowspan: 2},
{lbl: "Val-1-9", rowspan: 2}, // Index 8
{lbl: "Val-1-10"},
{lbl: "Val-1-11"} // Index 10
]);
data.push([
{lbl: "Val-2-1"},
{lbl: "Val-2-2"}
]);
data.push([
{lbl: "Val-3-1"},
{lbl: "Val-3-2"}
]);
data.push([
{lbl: "Val-4-1"},
{lbl: "Val-4-2"},
{lbl: "Val-4-3"},
{lbl: "Val-4-4"},
{lbl: "Val-4-5"},
{lbl: "Val-4-6"},
{lbl: "Val-4-7"},
{lbl: "Val-4-8"},
{lbl: "Val-4-9"},
{lbl: "Val-4-10"},
{lbl: "Val-4-11"}
]);
data.push([
{lbl: "Val-5-1"},
{lbl: "Val-5-2"},
{lbl: "Val-5-3"},
{lbl: "Val-5-4"},
{lbl: "Val-5-5"},
{lbl: "Val-5-6"},
{lbl: "Val-5-7"},
{lbl: "Val-5-8"},
{lbl: "Val-5-9"},
{lbl: "Val-5-10"},
{lbl: "Val-5-11"}
]);
我删除了lbl
中的值以使其保持整洁,因为该值并不重要。
但是,每个对象中的rowspan: x
属性很重要。
基本上,我想为接下来的2行添加缺失的列。
因此,如果rowspan
为4,我将在接下来的4行中添加缺少的列(如果数据结构将包含4行以上...)
新列需要使用rowspan
属性作为对象添加到该位置。
因此,为了让您大致了解最终的数据结构,它看起来像这样:
data.push([
{lbl: "Val-1-1", rowspan: 2}, // Index 0
{lbl: "Val-1-2", rowspan: 2},
{lbl: "Val-1-3", rowspan: 2},
{lbl: "Val-1-4", rowspan: 2},
{lbl: "Val-1-5", rowspan: 2},
{lbl: "Val-1-6", rowspan: 2},
{lbl: "Val-1-7", rowspan: 2},
{lbl: "Val-1-8", rowspan: 2},
{lbl: "Val-1-9", rowspan: 2}, // Index 8
{lbl: "Val-1-10"},
{lbl: "Val-1-11"} // Index 10
]);
data.push([
{lbl: ""}, // newly added object with empty `lbl` added to index 0
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""}, // newly added object with empty `lbl` added to index 8
{lbl: "Val-2-1"}, // existing object moved to index 9
{lbl: "Val-2-2"}, // existing object moved to index 10
]);
data.push([
{lbl: ""}, // newly added object with empty `lbl` added to index 0
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""},
{lbl: ""}, // newly added object with empty `lbl` added to index 8
{lbl: "Val-3-1"}, // existing object moved to index 9
{lbl: "Val-3-2"}, // existing object moved to index 10
]);
// Stays the same as `rowspan:2` means only `data[1]` and `data[2]` gets corrected.
data.push([
{lbl: "Val-4-1"},
{lbl: "Val-4-2"},
{lbl: "Val-4-3"},
{lbl: "Val-4-4"},
{lbl: "Val-4-5"},
{lbl: "Val-4-6"},
{lbl: "Val-4-7"},
{lbl: "Val-4-8"},
{lbl: "Val-4-9"},
{lbl: "Val-4-10"},
{lbl: "Val-4-11"}
]);
data.push([
{lbl: "Val-5-1"},
{lbl: "Val-5-2"},
{lbl: "Val-5-3"},
{lbl: "Val-5-4"},
{lbl: "Val-5-5"},
{lbl: "Val-5-6"},
{lbl: "Val-5-7"},
{lbl: "Val-5-8"},
{lbl: "Val-5-9"},
{lbl: "Val-5-10"},
{lbl: "Val-5-11"}
]);
在过去的3-4个小时里,我一直在努力实现这一目标,并努力让自己的头脑转向我需要做的事情。
如果可以的话,有人可以帮助我吗?