Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 26.02.2012, 09:30
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от Pavel M. Посмотреть сообщение
в IE < 9 только не работает
прошу прощения, ошибся,
засело в голове, что lastIndexOf для массивов не работает в старых IE, а здесь шла речь о строках
Ответить с цитированием
  #22 (permalink)  
Старый 26.02.2012, 14:08
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Mахmaxmaximus,
если конструктивная критика по коду, то напишите, если нет - то лучше вообще ничего не писать.
Ответить с цитированием
  #23 (permalink)  
Старый 26.02.2012, 14:22
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

nikita.mmf,
не производителен, избыточен. ты используешь 2 реверса, 2 конкатенации и.т.п. это все пробегается по всему массиву целиком, а нам не нужен весь массив целиком. Это избыточно и не логично.

Сообщение от Aetae Посмотреть сообщение
subString[0]

Это не будет работать в ie.
//ласт индекс оф
String.prototype.lastIndexOf = function(subString, index){
	subString.length > 1 && (subString = subString.split(''));
	var i = (index !== undefined) ? index : this.length-1;
	while(i-- != 0){
		if(this[i] === subString[0]){
			if(subString.length === 1) return i;
			else{
				for( var j = 1; j < subString.length; j++){
				    if(this[i+j] !== subString[j]) break;
					if(j === subString.length-1)   return i;
				};
			}
		};
	}
	return -1;
};

alert("canal".lastIndexOf("a"))   // 3
alert("canal".lastIndexOf("a",2)) // 1
alert("canal".lastIndexOf("a",0)) // -1
alert("canal".lastIndexOf("x"))   // -1

Последний раз редактировалось Mахmaxmaximus, 26.02.2012 в 14:41.
Ответить с цитированием
  #24 (permalink)  
Старый 26.02.2012, 15:28
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Горе мне, split то я и не заметил.
Это тема полна фэйлами чуть более чем полностью.=/
__________________
29375, 35
Ответить с цитированием
  #25 (permalink)  
Старый 26.02.2012, 15:34
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

На вскидку еще несколько вариантов без регексов:
var str = "aaa.www.ddd";
alert(str.substr(str.lastIndexOf('.') + 1));

var array = "aaa.www.ddd".split('.');
alert(array[array.length-1]);

alert("aaa.www.ddd".split('.').slice(-1));

alert("aaa.www.ddd".split('.').pop(-1));

alert("aaa.www.ddd".split('.').splice(-1, 1));

Последний раз редактировалось monolithed, 26.02.2012 в 15:48.
Ответить с цитированием
  #26 (permalink)  
Старый 26.02.2012, 15:36
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

monolithed,
ну так не честно)
Ответить с цитированием
  #27 (permalink)  
Старый 26.02.2012, 15:37
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Mахmaxmaximus
ну так не честно)
По моему TC не просил вариант через жопу
Ответить с цитированием
  #28 (permalink)  
Старый 26.02.2012, 15:47
Профессор
Посмотреть профиль Найти все сообщения от Mахmaxmaximus
 
Регистрация: 22.02.2012
Сообщений: 163

По моему ни чего производительней ластИндексОф тут нет, а сплит медленнее регулярок, или я не прав?

Сообщение от monolithed
По моему TC не просил вариант через жопу
не понял ты про что вообще? предложили же варианты не через жопу.
Ответить с цитированием
  #29 (permalink)  
Старый 26.02.2012, 15:58
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Mахmaxmaximus
По моему ни чего производительней ластИндексОф тут нет
Это нужно проверять.
Сообщение от Mахmaxmaximus
сплит медленнее регулярок, или я не прав?
По идее не должен, т.к. сплит выполняется за полиноминальное время, и имеет более низкий асимптотический коэффициент чем регексы.
Ответить с цитированием
  #30 (permalink)  
Старый 26.02.2012, 16:03
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

Mахmaxmaximus,
тесты по производительности в студию, 1 reverse и 1 join.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обрезка строки до (после) определенного символа gglmgl Общие вопросы Javascript 5 17.12.2012 17:49
Вбор числа после определенного символа в строке Jekel Серверные языки и технологии 2 21.03.2010 13:17
Передача фокуса из формы после ввода символа kuh Общие вопросы Javascript 2 08.03.2009 19:50