Цитата:
засело в голове, что lastIndexOf для массивов не работает в старых IE, а здесь шла речь о строках |
Mахmaxmaximus,
если конструктивная критика по коду, то напишите, если нет - то лучше вообще ничего не писать. |
nikita.mmf,
не производителен, избыточен. ты используешь 2 реверса, 2 конкатенации и.т.п. это все пробегается по всему массиву целиком, а нам не нужен весь массив целиком. Это избыточно и не логично. Цитата:
//ласт индекс оф
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
|
Горе мне, split то я и не заметил.
Это тема полна фэйлами чуть более чем полностью.=/ |
На вскидку еще несколько вариантов без регексов:
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,
ну так не честно) |
Цитата:
|
По моему ни чего производительней ластИндексОф тут нет, а сплит медленнее регулярок, или я не прав?
Цитата:
|
Цитата:
Цитата:
|
Mахmaxmaximus,
тесты по производительности в студию, 1 reverse и 1 join. |
| Часовой пояс GMT +3, время: 04:52. |