Javascript:2D数组-填写缺少的行列

时间:2020-06-01 17:58:49

标签: javascript object multidimensional-array

我在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个小时里,我一直在努力实现这一目标,并努力让自己的头脑转向我需要做的事情。

如果可以的话,有人可以帮助我吗?

0 个答案:

没有答案
相关问题