Я работаю над приложением в стиле Excel, но у меня проблемы с многомерным массивом.
У меня есть массив столбцов, который выглядит так:
var columns = [
{A: {binding: "A",header: "A"},
{B: {binding: "B",header: "B"},
{C: {binding: "C",header: "C"}
];
И затем у меня есть массив, представляющий значение каждой ячейки, которое выглядит так:
var data = [
{A:"row 0 col A", B: "row 0 col B", C:"row 0 col C"},
{A:"row 1 col A", B: "row 1 col B", C:"row 1 col C"},
{A:"row 2 col A", B: "row 2 col B", C:"row 2 col C"}
];
Свойство binding
объектов в массиве columns
будет использоваться для получения значения столбца для каждой строки.
Однако я сталкиваюсь с проблемой при вставке нового столбца в середину некоторых буквенных клавиш. Скажем, мне нужен новый столбец между столбцом A
и столбцом B
. Результат выглядит так:
var columns = [
{A: {binding: "A",header: "A"},
{B: {binding: "B",header: "B"},
{C: {binding: "C",header: "C"},
{D: {binding: "D",header: "D"}
];
Он просто помещает новый столбец в columns
.
Я думаю, мне нужно вставить новую ячейку / элемент между всеми алфавитными клавишами для каждой строки и переименовать все ключи (в этом случае переименовать ключи B
в C
, C
в D
и т. Д.).
Я бы хотел, чтобы результат выглядел так:
var data = [
{A:"row 0 col A", B:"new col inserted here", C:"row 0 col B", D:"row 0 col C"},
{A:"row 1 col A", B:"new col inserted here", C:"row 1 col B", D:"row 1 col C"},
{A:"row 2 col A", B:"new col inserted here", C:"row 2 col B", D:"row 2 col C"}
];
Меня беспокоят проблемы с производительностью, если я переименую все эти ключи, особенно если у меня 120 столбцов (A-DZ) и 100 строк.
У меня два вопроса:
- Как это сделать наиболее эффективно?
- Будут ли у меня проблемы с производительностью при переименовании этих ключей, если у меня много строк и столбцов?