предложите мне различные варианты хранения этих данных в javascript

#javascript

#javascript

Вопрос:

Я получаю данные в следующем формате

[Sl.No Сумма, тип транзакции, номер счета]


[01, $ 10000, депозит, 473882829]


[02, $ 10202, депозит, 348844844]


[02, $ 10202, вывод средств, 348844844]

Каков наилучший способ сохранить эти данные в Javascript для более быстрого извлечения

Комментарии:

1. если вы добавите к ним метки, вы можете легко сохранить их как объект JS

2. @JohnP — или JSON

3. @timbooo JSON — это просто текст, используемый для передачи или хранения, в то время как «объект JS» может быть создан из JSON (или вручную из одноразовых форматов, таких как выше).

Ответ №1:

 var data = ["02", "$10202", "Withdrawal", 348844844]

//empty object
var list = {};

//Constructing the index by concatenating the last two elements of the data.
//Probably this will give the primary key to the data.
var index = data[2]   data[3].toString();

//Store the data using the index
list[index] = data;
  

Вы можете извлечь данные, используя индекс, построенный выше.

Комментарии:

1. Это недопустимо, поскольку оно разбирается на идентификатор, за которым $ следует число 10202 — возможно ['02', '$102002', "Withdrawal", ...] . Кроме того, 0xyz (где x y и z от 0 до 7) обрабатываются как восьмеричные, отсюда и кавычки в первом элементе (также сохраняются начальные 0). То же самое, вероятно, должно быть последним.

2. @pst: Я согласен. да, данные должны быть преобразованы в строку. изменение ответа.

Ответ №2:

  1. Определите, как к данным необходимо получить доступ. Я предполагаю, что к ним нужно обращаться линейно, чтобы случайно не перерасходовать (снимать перед внесением депозита) и т.д. — В этом случае массив, как правило, является подходящей структурой данных. Простой цикл for должен быть способен находить большинство простых «запросов».

  2. Определите, как объект представлен в Javascript — является ли каждый «элемент транзакции» массивом [x, amount, type, account] или это объект с подписью {x: ..., amount: ..., type: ..., account: ...} (я часто выбираю последнее, поскольку это добавляет некоторую самодокументацию). Это также может быть объект, созданный с помощью new TransactionItem (или еще чего-то), который включает методы.

  3. Определите, как преобразовать необработанные данные в выбранное объектное представление. Для четко определенного формата может подойти простое регулярное выражение или ‘split’.

  4. Используйте данные. Помните, что даже дрянной O(n^2) алгоритм, как правило, «достаточно быстр» для небольших n . Лучше всего сначала заставить его работать.

Удачного кодирования.