Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.07.2013, 10:38
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Непонятки с масивом.
Есть такой код.
newdata="";
function datadelt(d){
	localdata='Masha^Sasha^Dasha^Vania^|Shishken^Dekterov^Ivanov^Barankov^|';
	localfundata=localdata.split('^|');
	num=localfundata.length;
	data=[];
	i=0;
	while(i<num){
	data.push(localfundata[i].split('^'));
	i++;
	}
	delete data[d];
	num=localfundata.length;
	newlocaldata='';
	i=0;
	while(i<num){
	newlocaldata+=data[i];
	i++;
	}
	newdata=newlocaldata.replace(/\bundefined\b/g ,' ');
	alert(newdata);
	}
datadelt(0);
Который должен сначало разбивать строку на один массив потом ещё на один. Тем самым получаем ммм двойной массив или двумерный. . . . Короче говоря после его первая часть то есть текст Masha Sasha Dasha Vania должны быть удалены, а текст underfined который остаёться так же должен быть выкинут из строки. Но происходит каким-то неведомым мне способом (Похоже я совсем того) что мне IE выдаёт следующий результат: Masha Sasha Shishken Dekterov underfined ну по всей логике даже если удаляються первые элементы из обоих массивов почему это остаёться а то что идёт заними удаляеться? Так вроде чуть чуть пофиксил сам но всё равно теперь выдаёт:
underfined Shishken Dekterov Ivanov Barankov. Как избавиться от underfined.
Полный код. Так же не доработаный. . . .
/*Вывод*/
function remlocaldata(){
	localdata=localStorage.getItem('LF');
	localfundata=localdata.split('^|');
	num=localfundata.length;
	newdata=[];
	i=0;
	while(i<num){
	newdata.push(localfundata[i].split('^'));i++;
	}
	n=0;
	while(n<num){
	url=newdata[n][0];
	title=newdata[n][1];
	html='<div id="aclick'+n+'"><a href="'+url+'">'+title+'</a> <div onclick="datadelt('+n+')"><br />Удалить '+title+'<br /> <br /></div></div>';
	document.write(html);
	if(url==null&&title==null){a='aclick'+n+'';document.getElementById(a).parentNode.removeChild(document.getElementById(a));}n++;}
	}
/*--------*/
/*Сохранение*/	
	function save(){
	localdata=localStorage.getItem('LF');
	if(localdata==null){
	localdata=''+MyUrl+'^'+MyTitle'^|';
	}
	else{
	MyUrl=location.href;
	MyTititle=document.title;
	localdata+=''+MyUrl+'^'+MyTitle'^|';}
	localStorage.setItem('LF',localdata);
	}
/*--------*/
/*Удаление*/
	function datadelt(d){
	localdata=localStorage.getItem('LF');
	localfundata=localdata.split('^|');
	num=localfundata.length;
	data=[];
	i=0;
	while(i<num){
	data.push(localfundata[i].split('^'));i++;
	}
	delete newdata[d];
	newlocaldata='';
	i=0;
	while(i<num){
	newlocaldata+=data[i][0];
	newlocaldata+=data[i][1];i++;
	}
	newlocaldata=newlocaldata.replace(/\bundefined\b/g ,'');
	localStorage.setItem('LF',newlocaldata);
	a='aclick'+n+'';document.getElementById(a).parentNode.removeChild(document.getElementById(a);
	}
/*-----------*/

Последний раз редактировалось koeshiro, 29.07.2013 в 10:58.
Ответить с цитированием
  #2 (permalink)  
Старый 29.07.2013, 10:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

koeshiro,
Удаление из массива
pop shift splice
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2013, 11:22
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Вот именно что pop shift splice не подходят. Ибо нужно будет удалять из центра массива не трогая его других частей. А от underfined нужно избавиться из строки его нужно выкорчить. . . .
Ответить с цитированием
  #4 (permalink)  
Старый 29.07.2013, 11:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от koeshiro
pop shift splice не подходят
по моему вы страдаите фигнёй
newdata="";
function datadelt(){
	localdata='Masha^Sasha^Dasha^Vania^|Shishken^Dekterov^Ivanov^Barankov^|';
	newdata=localdata.split('^|')[1].split('^').join(' ');
	alert(newdata);
	}
datadelt();
Ответить с цитированием
  #5 (permalink)  
Старый 29.07.2013, 12:35
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

рони,
Нет просто ещё много не знаю. .join(' ');
Вот из за этой маленькой команды можно было не делать цикл? Но всё равно underfined ведь не куда не дениться как с ним быть?
Ответить с цитированием
  #6 (permalink)  
Старый 29.07.2013, 13:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от koeshiro
Но всё равно underfined ведь не куда не дениться как с ним быть?
моя твоя непонимать где underfined?

Последний раз редактировалось рони, 29.07.2013 в 13:11.
Ответить с цитированием
  #7 (permalink)  
Старый 29.07.2013, 13:19
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

рони,
посли delet data[0]; остаёться underfined http://learn.javascript.ru/array-met...массива
Ответить с цитированием
  #8 (permalink)  
Старый 29.07.2013, 13:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от koeshiro
посли delet data[0]; остаёться underfined
примите это как факт и удаляйте элемент массива методами для этого предназначенными.
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2013, 13:40
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

newlocaldata=newlocaldata.replace(/\bundefined\b/g ,'');
Не сработало. Вы человек умный. Можете помочь? Я честное слово искал и ищу но если вы поможете буду вам благодарен =)
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2013, 13:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

koeshiro,
что вам нужно получить функцией datadelt -- чем вас неустроил вариант из 4 поста
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятки с jquery-1.9.1 (attr, removeAttr) imya jQuery 6 13.02.2013 13:50
непонятки с циклом Yellow79 Events/DOM/Window 2 11.05.2011 16:29
Непонятки с областью видимости переменной zeleniy Общие вопросы Javascript 7 18.04.2011 16:08
непонятки со scroll Арсений Events/DOM/Window 1 25.08.2010 13:15
непонятки jquery.nyroModal giGnet jQuery 2 09.08.2010 22:31