Я думаю нет необходимости соединять строки массива при помощи какого-то символа, поскольку этот символ может содержаться в строке.
По моему стоит использвать лучше этот символ в качестве соединителя значения ключа localStorage. Например имя массива + символ + индекс строки из массива.
Для простоты записи и чтения по такой системе будет хорошо иметь два метода: 1. у массива toLocalStorage для записи и 2. toArray для обратной манипуляций.
var LocalStorage = (function() {
function LocalStorage(name) {
if(!name)
throw new Error('Name of storage isn\'t exist');
this.name = name;
LocalStorage.Names.push[name];
this.length = parseInt(localStorage[this.name + '.length'] || 0);
localStorage[this.name + '.length'] = this.length;
}
function each(iterator, context) {
for(var index = 0; index < this.length; index++) {
iterator.call(context, localStorage[this.name + '.' + index], index);
}
return this;
}
function push(string) {
localStorage[this.name + '.' + this.length++] = string;
localStorage[this.name + '.length'] = this.length;
return this;
}
function select(index) {
return localStorage[this.name + '.' + index];
}
function toArray() {
var result = [];
this.each(function(string) {
result.push(string);
});
return result;
}
LocalStorage.prototype = {
each: each,
push: push,
select: select,
toArray: toArray
};
LocalStorage.Names = [];
return LocalStorage;
})();
Array.prototype.toLocalStorage = function(name) {
var __localStorage = new LocalStorage(name);
for(var i = 0; i < this.length; i++)
__localStorage.push(this[i]);
return __localStorage;
};
/*********************************/
// Метод массива toLocalStorage записывает массив в localStorage
var ls = ['Slagt ham! Kristenmands søn har dåret', 'Dovregubbens veneste mø!', 'Slagt ham!', 'Isvand i blodet!'].toLocalStorage('my-dump');
// Метод LocalStorage toArray записывает из хранилища в массив
alert(ls.toArray());
Сообщение от tsigel
|
А эвал то зачем?
|
typeof readArrayFromStorage('some') оказалось равным 'string'