06.06.2012, 20:55
|
Профессор
|
|
Регистрация: 24.03.2011
Сообщений: 217
|
|
Удаление элемента массива по его названию
Добрый день!
Помогите разобраться, как можно удалить из массива элемент используя не его инденкс, а его название?
Пример
arr = ['test', 'test2', 'test3'];
Пробовал
arr = ['test', 'test2', 'test3'];
delete arr['test'];
но не получается((
Заранее спасибо!
|
|
06.06.2012, 21:07
|
Профессор
|
|
Регистрация: 24.03.2011
Сообщений: 217
|
|
Большое спасибо!
|
|
06.06.2012, 21:26
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Maxmaxmахimus,
ты если людям советуешь что-то с новыми возможностями, хотя бы указывай об этом. Сейчас человек прилепит это у себя а работать это будет только в новых браузерах. Я конечно понимаю что ты такой весь на пальцах, новые возможности и все такое. Но не все такие как ты, многим и старые браузеры тоже нужны.
Dorian_bs, я вас розачарую, его код будет работать только в новых браузерах. Про ИЕ7-8 можете забыть с его примером. Или добавить придется вот этот код:
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) {
"use strict";
if (this == null) {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) {
return -1;
}
var n = 0;
if (arguments.length > 0) {
n = Number(arguments[1]);
if (n != n) { // shortcut for verifying if it's NaN
n = 0;
} else if (n != 0 && n != Infinity && n != -Infinity) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
if (n >= len) {
return -1;
}
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
for (; k < len; k++) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
}
}
что бы работало и в ИЕ7-8 тоже.
|
|
06.06.2012, 21:49
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Maxmaxmахimus,
тебе не говорят указывать списком то где не будет работать, а просто можно написать, работает в ИЕ с версии 9 и в остальных браузерах. Не забывай о том что в эту тему заглянет потом еще сотню людей ищущие решения. И кому-то оно нужно будет не только для новых браузеров.
|
|
06.06.2012, 22:44
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Maxmaxmахimus
|
И где та грань где актуальные браузеры и где не актуальыне?
|
Грань очевидна. Если ты готов пожертвовать ~10% своего заработка (IE<9), то ты можешь не поддерживать. А кто-то не готов терять заработок из-за какого-то indexOf.
Только не забывай, что у IE, как показывает практика, более платёжеспособная аудитория.
|
|
06.06.2012, 22:55
|
Профессор
|
|
Регистрация: 16.05.2011
Сообщений: 307
|
|
привет.Скажите этот код имеет право на жизнь?
<script>
arr = ['test', 'test2', 'test3','test4','test5','test6'];
function delet(name){
for(i=0;i<arr.length;i++){
if(arr[i]==name) {
delete arr[i]
var before=arr.slice(0,i)
var after=arr.slice(i+1)
arr=before.concat(after)
}
}
}
delet('test2')
delet('test5')
alert(arr)
</script>
__________________
Я только учусь.Ногами просьба не бить
Последний раз редактировалось bot87, 06.06.2012 в 22:59.
|
|
07.06.2012, 00:40
|
что-то знаю
|
|
Регистрация: 24.05.2009
Сообщений: 5,176
|
|
Сообщение от Maxmaxmахimus
|
Труда в разработку должно быть вложено ровно 10% от труда разработки под нормальные браузеры. На практике же поддержка ишаков занимает примерно 40% от обычной разработки. То есть приходится пилить для нормальных браузеров, и версию для осла, при том эти 40% это исправление багов и допилы несовершенств. Если проект требует труда больше чем 10%, то я не буду поддерживать не актуальные браузеры а просто поставлю заглушку.
|
Ну вот ты даже элементарно не понял того о чем тебе Kolyaj, пытается втолковать. Речь не о том сколько ты тратишь на разработку времени, а речь о том сколько заработка ты теряешь от уже сделанного сайта, то-есть те для кого ты поставишь заглушку, потенциальные клиенты, и от твоей заглушки они будут просто уходить. Именно это тебе и пытается втолковать Kolyaj, о заработке уже действующего проекта.
|
|
07.06.2012, 12:08
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от Maxmaxmахimus
|
если только человек даун и не сможет установить браузер по ссылке, то он и заказ товара на моем сайте сделать не сможет
|
А если админ даун и запретил менять систему обычному пользователю?
(не хотел никого обидеть)
|
|
07.06.2012, 13:00
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Maxmaxmахimus
|
Труда в разработку должно быть вложено ровно 10% от труда разработки под нормальные браузеры.
|
Некорректно сравнивать процент прибыли и процент разработки. Разработка производится один раз, а прибыль потом идёт постоянно. Ну это как кофейный автомат купить и поставить в людное место: первый год он только окупается, а потом начинает приносить прибыль.
Ну и лично у меня, например, IE не занимает 10% процентов времени. Хотя я начинал, когда IE7 ещё не было, я уже автоматически пишу так, чтобы в IE проблемы минимизировать.
|
|
04.07.2013, 17:54
|
Профессор
|
|
Регистрация: 24.03.2011
Сообщений: 217
|
|
Можно так
arr = ['test1', 'test2', 'test3','test4','test5','test6'];
for (var i = 0; i < arr.length; i++) {
if(arr[i] == 'test3') {
arr.splice(i, 1);
}
}
|
|
|
|