#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:
-
Определите, как к данным необходимо получить доступ. Я предполагаю, что к ним нужно обращаться линейно, чтобы случайно не перерасходовать (снимать перед внесением депозита) и т.д. — В этом случае массив, как правило, является подходящей структурой данных. Простой цикл for должен быть способен находить большинство простых «запросов».
-
Определите, как объект представлен в Javascript — является ли каждый «элемент транзакции» массивом
[x, amount, type, account]
или это объект с подписью{x: ..., amount: ..., type: ..., account: ...}
(я часто выбираю последнее, поскольку это добавляет некоторую самодокументацию). Это также может быть объект, созданный с помощьюnew TransactionItem
(или еще чего-то), который включает методы. -
Определите, как преобразовать необработанные данные в выбранное объектное представление. Для четко определенного формата может подойти простое регулярное выражение или ‘split’.
-
Используйте данные. Помните, что даже дрянной
O(n^2)
алгоритм, как правило, «достаточно быстр» для небольшихn
. Лучше всего сначала заставить его работать.
Удачного кодирования.