13.03.2011, 15:32
|
Профессор
|
|
Регистрация: 25.02.2010
Сообщений: 218
|
|
как найти и удалить массив из массива?
есть у меня кука в которую записываю данные и разделяю их ";"
например гадя,петрович,хренова;петр, василич,иванов;
и есть кнопка на каждую позицию чтобы удалить эту запись из куки
вот так :
onclick='MinusFromCookie("гадя","петрович","хренова");'
как я думаю это сделать
в скрипте MinusFromCookie я получаю значение куки, заганяю в массив, потом ищю по массиву нужную запись, грохаю ее, и затем массив обратно в куку.
сложность возникает в том чтобы найти запись в массиве с такими параметрами и удалить из массива
вот код
function MinusFromCookie(var1,var2,var3) {
var str = $.cookie("names");
var arr = str.split(';');
}
как дальше найти индекс массива arr содержащим в себе запись с такими переменными var1,var2,var3 которые получил скрипт, и грохнуть этот индекс? и еще чтобы удалилось первое совпадение, потому как их может быть несколько
|
|
13.03.2011, 16:08
|
|
Профессор
|
|
Регистрация: 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 клацай
|
|
13.03.2011, 17:53
|
Профессор
|
|
Регистрация: 16.03.2010
Сообщений: 1,618
|
|
walik, не использовать var в функциях - это отстой. Как зеленые джинсы: может кому и нравятся, но их отстойность близка к объективной отстойности. Короче, нех гадить в такие почтенные объекты как window.
Во-вторых, else if - это тоже отстой. switch - норм, а else if - отстой.
А еще new Array() - это тоже отстой. Может кому и наглядно, а все же по меркам js - отстойная конструкция.
В общем, не нужно писать отстой
|
|
13.03.2011, 18:02
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Sweet,
Человек попросил помочь, и я ему помог. Умеешь писать грамотней - так что тебе мешает написать здесь свой пример ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
13.03.2011, 18:05
|
Интересующийся
|
|
Регистрация: 27.01.2011
Сообщений: 21
|
|
Сообщение от Sweet
|
А еще new Array() - это тоже отстой. Может кому и наглядно, а все же по меркам js - отстойная конструкция.
|
А как надо??
|
|
13.03.2011, 18:32
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от yupee
|
А как надо??
|
определить массив можно двумя нотациями, первую вы уже знаете, вторую можно прочесть здесь
|
|
13.03.2011, 18:36
|
Профессор
|
|
Регистрация: 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];
|
|
14.03.2011, 14:24
|
Профессор
|
|
Регистрация: 25.02.2010
Сообщений: 218
|
|
Сообщение от Sweet
|
walik, есть мнение, что это называется "медвежья услуга", потому что дурной пример дико заразительный. Мой пример? Пожалуйста:
function fn(string){
return string.replace( [].slice.call(arguments, 1).join(',') + ';', '' );
};
var string = 'гадя,петрович,хренова;петр,василич,иванов;';
alert( fn(string, 'гадя', 'петрович', 'хренова') );
|
респект тебе дружище! даже не думал что код может получиться таким коротким, работает супер!
|
|
14.03.2011, 15:48
|
Интересующийся
|
|
Регистрация: 27.01.2011
Сообщений: 21
|
|
Сообщение от Sweet
|
Я считаю, что достаточно писать []
|
Спасибо!
Сообщение от monolithed
|
определить массив можно двумя нотациями, первую вы уже знаете, вторую можно прочесть здесь
|
Спасибо, но я знал как определяются массивы (хоть и посмотрел еще раз). Просто хотел узнать как предпочтительнее, так сказать по-профессиональному
|
|
|
|