Создать массив из даных массива.
Такой вот ворос.
url='http',title='title',num=1; save=''+url+','+title+','+num+',|'; x=1; localStorage.setItem('Nf',save); n=localStorage.getItem('Nf'); url='http2',title='title2',num=2; n+=''+url+','+title+','+num+',|'; localStorage.setItem('Nf',n); n=localStorage.getItem('Nf'); save=n.split(',|'); alert(save); num=save.length; array=[]; array +=save[0].split(','); array +=save[1].split(','); alert(typeof array); alert(array);Есть вот такой ясен пень что не закоченный код. Он сохраняет в локальное хранилище данные url title num два раза. Тем самым получая строку из повторяющихся данных различающихся только цифрами. После разделяет на массивы по ,| получаем массив с двумя переменными http,title,1 и http2,title2,2 но и эти данные надо разделить на массивы. Но подскажете как? array=[]; array +=save[0].split(','); array +=save[1].split(',');Так не работает =( |
|
Почитай про JSON сериализацию
|
Про него знаю . . . Но реализовать ведь будет сложней. После удаления данных пустые нумера не чем не заполняються, перезапись делать мутарно да и сложно, вызывает такие не желательные ошибки как не показывание последних элементов. Подобное делал =(
|
Спасибо не подумал =)
|
koeshiro, ты о чем вобще?
var data = [{ url: 'http://site.ru', title: 'title', num: 1 }]; localStorage.setItem('Nf',JSON.stringify(data)); var data = JSON.parse(localStorage.getItem('Nf')); data.push({ url: 'http://site2.ru', title: 'title2', num: 2 }); localStorage.setItem('Nf',JSON.stringify(data)); var data = JSON.parse(localStorage.getItem('Nf')); alert(data.map(function(item){ return '{' + Object.keys(item).map(function(key){ return key + ':' + item[key]}) + '}'; })); |
danik.js, а теперь представьте. Как с таким работать в количестве 100 чтук? Может для вас это просто, но лично я больше привык к обычным массивам.
|
Цитата:
|
А теперь представь что в одном твоем title или url вдруг появляется запятая или знак |. Все, приплыли?
|
Цитата:
|
Ты лучше объясни чем массив, полученный через JSON.parse отличается от массива полученного после .split().
|
Цитата:
|
Вообще не вижу тут проблемы. Вопрос стоит как получить массив из массива.
В JS есть массив и объект. Массив «работает» быстрее. Это можно ощутить на больших данных. Когда будет хотя бы 1000 элементов, а то и больше. Когда речь идет на десятки я бы использовал объект (ассоциативный массив) и не парился бы. Второй момент. Имеет смысл загонять это в массив, если вы его постоянно обсчитываете, ну хотя бы три раза бегаете по нему, сортируете и так далее. Если вы пробегаетесь по нему один, два раза, то весь тот выигрыш, который вам даст массив сожрет время на его генерацию. И в третьих. Если уж так важно получить массив — положите все в объект,а потом оттуда выбирайте. |
Часовой пояс GMT +3, время: 03:44. |