Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2011, 15:32
Профессор
Отправить личное сообщение для FRIE Посмотреть профиль Найти все сообщения от FRIE
 
Регистрация: 25.02.2010
Сообщений: 218

как найти и удалить массив из массива?
есть у меня кука в которую записываю данные и разделяю их ";"
например гадя,петрович,хренова;петр, василич,иванов;

и есть кнопка на каждую позицию чтобы удалить эту запись из куки
вот так :
onclick='MinusFromCookie("гадя","петрович","хренова");'


как я думаю это сделать
в скрипте MinusFromCookie я получаю значение куки, заганяю в массив, потом ищю по массиву нужную запись, грохаю ее, и затем массив обратно в куку.

сложность возникает в том чтобы найти запись в массиве с такими параметрами и удалить из массива

вот код

function MinusFromCookie(var1,var2,var3) {
	var str = $.cookie("names");
	var arr = str.split(';'); 
}
как дальше найти индекс массива arr содержащим в себе запись с такими переменными var1,var2,var3 которые получил скрипт, и грохнуть этот индекс? и еще чтобы удалилось первое совпадение, потому как их может быть несколько
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2011, 16:08
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

function minus(var1, var2, var3) {
	str = 'Петя;Дима;Вася;Кирил;Петя';
	new_arr = new Array();
	arr = str.split(';');
	for(i=0;i<arr.length;i++) {
		if (arr[i] == var1) {
			var1 = null;
			continue;
		} else if (arr[i] == var2) {
			var2 = null;
			continue;
		} else if (arr[i] == var3) {
			var3 = null;
			continue;
		} else {
			new_arr.push(arr[i]);
		}
	}
	alert(new_arr);
}

minus('Петя','Валик','Вася');
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2011, 17:53
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

walik, не использовать var в функциях - это отстой. Как зеленые джинсы: может кому и нравятся, но их отстойность близка к объективной отстойности. Короче, нех гадить в такие почтенные объекты как window.
Во-вторых, else if - это тоже отстой. switch - норм, а else if - отстой.
А еще new Array() - это тоже отстой. Может кому и наглядно, а все же по меркам js - отстойная конструкция.
В общем, не нужно писать отстой
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2011, 18:02
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

Sweet,
Человек попросил помочь, и я ему помог. Умеешь писать грамотней - так что тебе мешает написать здесь свой пример ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2011, 18:05
Интересующийся
Отправить личное сообщение для yupee Посмотреть профиль Найти все сообщения от yupee
 
Регистрация: 27.01.2011
Сообщений: 21

Сообщение от Sweet
А еще new Array() - это тоже отстой. Может кому и наглядно, а все же по меркам js - отстойная конструкция.
А как надо??
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2011, 18:32
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от yupee
А как надо??
определить массив можно двумя нотациями, первую вы уже знаете, вторую можно прочесть здесь
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2011, 18:36
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

walik, есть мнение, что это называется "медвежья услуга", потому что дурной пример дико заразительный. Мой пример? Пожалуйста:
function fn(string){
  return string.replace( [].slice.call(arguments, 1).join(',') + ';', '' );
};

var string = 'гадя,петрович,хренова;петр,василич,иванов;';
alert( fn(string, 'гадя', 'петрович', 'хренова') );
Сообщение от yupee
А как надо??
Я считаю, что достаточно писать [], а такие скрипты:
var array = new Array();
array[0] = 0;
array[1] = 1;
array[2] = 2;
считаю убогой версией
var array = [0, 1, 2];
Ответить с цитированием
  #8 (permalink)  
Старый 14.03.2011, 14:24
Профессор
Отправить личное сообщение для FRIE Посмотреть профиль Найти все сообщения от FRIE
 
Регистрация: 25.02.2010
Сообщений: 218

Сообщение от Sweet Посмотреть сообщение
walik, есть мнение, что это называется "медвежья услуга", потому что дурной пример дико заразительный. Мой пример? Пожалуйста:
function fn(string){
  return string.replace( [].slice.call(arguments, 1).join(',') + ';', '' );
};

var string = 'гадя,петрович,хренова;петр,василич,иванов;';
alert( fn(string, 'гадя', 'петрович', 'хренова') );

респект тебе дружище! даже не думал что код может получиться таким коротким, работает супер!
Ответить с цитированием
  #9 (permalink)  
Старый 14.03.2011, 15:48
Интересующийся
Отправить личное сообщение для yupee Посмотреть профиль Найти все сообщения от yupee
 
Регистрация: 27.01.2011
Сообщений: 21

Сообщение от Sweet
Я считаю, что достаточно писать []
Спасибо!


Сообщение от monolithed
определить массив можно двумя нотациями, первую вы уже знаете, вторую можно прочесть здесь
Спасибо, но я знал как определяются массивы (хоть и посмотрел еще раз). Просто хотел узнать как предпочтительнее, так сказать по-профессиональному
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как удалить все IMG содержащие src="www.site.ru/killme.jpg";" ? DjDiablo jQuery 2 26.02.2011 23:22
Если селектор возвращает массив узлов, как работать с каждым по отдельности? балерун jQuery 7 15.02.2011 12:42
Как удалить элемент из дерева DOM dummer jQuery 13 16.01.2011 16:19
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Как найти индекс по элементу в двумерном массиве? bayah Общие вопросы Javascript 5 22.04.2010 16:26