Показать сообщение отдельно
  #10 (permalink)  
Старый 12.02.2015, 00:40
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Я думаю нет необходимости соединять строки массива при помощи какого-то символа, поскольку этот символ может содержаться в строке.
По моему стоит использвать лучше этот символ в качестве соединителя значения ключа 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'
Ответить с цитированием