Для сортировки по полю нескольких объектов массива. Введите имя своего поля в массив arrprop
, например ["a","b","c"]
, а затем передайте второй параметр arrsource
, который мы хотим отсортировать.
function SortArrayobject(arrprop,arrsource){
arrprop.forEach(function(i){
arrsource.sort(function(a,b){
return ((a[i] < b[i]) ? -1 : ((a[i] > b[i]) ? 1 : 0));
});
});
return arrsource;
}
Квота предназначена для пользователя для установки, сколько места он хочет разрешить для каждого веб-сайта.
Поэтому, поскольку целью является ограничение веб-страниц, веб-сайт страницы не могут изменить ограничение.
Если хранилище низкое, вы можете попросить пользователя увеличить локальное хранилище.
Чтобы узнать, недостаточно ли хранилище, вы можете определить размер локального хранилища сохраняя объект, а затем удаляя его.
Вы не можете, он жестко подключен к 5 МБ. Это дизайнерское решение разработчиками Chrome .
В Chrome, как и в случае с Java, девайс SQL и кэша также имеют низкие ограничения по умолчанию, но если вы упакуете приложение для Chrome App Store вы можете увеличить их .
См. Также Управление автономным хранилищем HTML5 - Google Chrome .
5MB - это жесткий предел, и это глупо. IndexedDB дает вам ~ 50 МБ, что является более разумным. Чтобы было проще использовать try Dexie.js https://github.com/dfahlander/Dexie.js
Обновление:
Dexie.js был на самом деле все еще избыток для моих простых целей с ключевыми значениями, поэтому я написал этот гораздо более простой скрипт https://github.com/DVLP/localStorageDB
с этим у вас есть 50 МБ и может получить и установить такие значения
// Setting values
ldb.set('nameGoesHere', 'value goes here');
// Getting values - callback is required because the data is being retrieved asynchronously:
ldb.get('nameGoesHere', function (value) {
console.log('And the value is', value);
});
Скопировать / вставить строку ниже, чтобы ldb.set()
и ldb.get()
из приведенного выше примера стали доступны.
!function(){function e(t,o){return n?void(n.transaction("s").objectStore("s").get(t).onsuccess=function(e){var t=e.target.result&&e.target.result.v||null;o(t)}):void setTimeout(function(){e(t,o)},100)}var t=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;if(!t)return void console.error("indexDB not supported");var n,o={k:"",v:""},r=t.open("d2",1);r.onsuccess=function(e){n=this.result},r.onerror=function(e){console.error("indexedDB request error"),console.log(e)},r.onupgradeneeded=function(e){n=null;var t=e.target.result.createObjectStore("s",{keyPath:"k"});t.transaction.oncomplete=function(e){n=e.target.db}},window.ldb={get:e,set:function(e,t){o.k=e,o.v=t,n.transaction("s","readwrite").objectStore("s").put(o)}}}();
ldb.get('nameGoesHere', function (value) { console.log('And the value is', value) });
– Pawel
9 January 2017 в 22:04
Object.keys(localStorage)
.)
– 7vujy0f0hy
21 November 2017 в 17:14
Вы не можете, но если вы сохраните JSON в своем локальном хранилище, вы можете использовать библиотеку для сжатия таких данных, как: https://github.com/k-yak/JJLC