- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
function trim(s)
{
var i,j;
for (i = 0; i < s.length && s.charAt(i) == " "; i++);
for (j = s.length-1; j >= 0 && s.charAt(j) == " "; j--);
if (i<=j)
return s.substring(i, j+1);
else
return '';
}
Teddy_Brown 19.10.2011 09:53 # +1
KirAmp 22.10.2011 22:38 # 0
Или JS игнорирует ; ?
lucidfox 19.10.2011 11:40 # −1
wvxvw 19.10.2011 16:26 # +5
lucidfox 19.10.2011 16:35 # 0
Фиксед?
roman-kashitsyn 19.10.2011 11:43 # 0
bugmenot 19.10.2011 11:56 # 0
AnimeGovno-_- 19.10.2011 13:07 # −10
bugmenot 19.10.2011 13:13 # +4
AnimeGovno-_- 19.10.2011 13:19 # −10
bot-minurast 19.10.2011 20:10 # 0
AnimeGovno-_- 20.10.2011 09:19 # −4
Облом. Нет у меня такого в линуксе.
KirAmp 22.10.2011 22:40 # 0
AnimeGovno-_- 23.10.2011 11:32 # −4
KirAmp 23.10.2011 15:26 # +4
AnimeGovno-_- 23.10.2011 18:24 # −10
SmackMyBitchUp 25.10.2011 17:13 # +1
Dummy00001 19.10.2011 13:48 # 0
а так одним substring'ом все аккуратно чикается.
lucidfox 19.10.2011 13:59 # 0
bugmenot 19.10.2011 14:08 # +1
guest6 12.02.2023 00:40 # 0
OCETuHCKuu_nemyx 12.02.2023 18:42 # 0
PE3yC 12.02.2023 22:22 # 0
https://perldoc.perl.org/functions/chop
wvxvw 19.10.2011 16:00 # +1
PE3yC 12.02.2023 22:23 # 0
ахахахахах
wvxvw 19.10.2011 16:21 # 0
Если задаться целью оптимизации без использования регулярных выражений. :)
3.14159265 19.10.2011 16:42 # +2
отдельным постом нужно
А насичот js-регулярок - эт вы хорошо сказали.
bugmenot 19.10.2011 16:45 # 0
wvxvw 19.10.2011 16:53 # 0
3.14159265 19.10.2011 16:59 # +2
и вообще for - короче чем while и удобней.
wvxvw 19.10.2011 17:59 # 0
Удобство - личное дело. Мне так удобно, вам - по другому. Я не спорю, но оптимизация подразумевает что удобством можно пожертвовать.
Количество пробельных элементов не повлияет на работу, но скажется на быстроте работы парсера, так что вы правы.
В моем предыдущем сообщении было два предложения, прочитайте второе предложение, тоже.
3.14159265 19.10.2011 18:12 # 0
for (i=0;s[++i] in d;);
for (j=s.lenght-1;(c in d) && s[j] >= a);--j);
например
3.14159265 19.10.2011 18:18 # +1
for (i=0;s[i] in d;++i);
>for (j=s.lenght-1;(c in d) && s[j] >= a);--j);
for (j=s.lenght-1;(s[j] in d) && j >= i);--j);
*sefl-fix*
gegMOPO4 19.10.2011 18:38 # 0
3.14159265 19.10.2011 18:53 # 0
>в худшем случае, т.е. когда будет строка только из пробельных элементов код из примера буде проверять ее дважды, справа налево и слева направо.
gegMOPO4 19.10.2011 19:03 # 0
В зависимости от реализации может оказаться выгоднее сделать s=s.substring(i) перед вторым циклом и упростить условие.
wvxvw 19.10.2011 20:37 # 0
"Зачем с" - в смысле "зачем-с", или зачем нужна переменная "с"? 1. Иногда мне скучно. 2. Согласен, можно было и без.
Улучшеный вариант:
%)
for-in тут ни при чем, у вас не получится через for-in просмотреть все символы строки.
3.14159265 19.10.2011 20:40 # 0
&& a<b, где b = s.length,
>for (c in d)
работает точно так же как и while(c in d)
wvxvw 19.10.2011 21:18 # +1
>for (c in d)
>работает точно так же как и while(c in d)
Нет, в первом случае in - ключевое слово (т.е. является частью конструкции for-in и не имеет самостоятельного смысла), во втором - in - оператор (обычная функция записанная в инфиксной нотации). В первом случае вы перечисляете все ключи хеша, во втором вы проверяете наличие ключа в хеше. Т.е. в первом случае будет использоваться опкод next_value (для последовательного получения всех ключей в d), а во втором - get_property (для проверки наличия у d ключа c), ну или как-то так. Вобщем, эти операции даже не связаны между собой.
3.14159265 20.10.2011 12:26 # 0
Ты прав.
Но проверку я бы оставил.
3.14159265 19.10.2011 19:22 # 0
for (c in d)
bugmenot 19.10.2011 17:18 # +2
gegMOPO4 19.10.2011 18:00 # 0
SmackMyBitchUp 19.10.2011 17:29 # 0
А то, помнится мне, в Java метод String.substring(...) вернет по сути ту же самую строку, которая была изначально, но приватные члены-данные нового объекта: offset, count изменятся, а value (массив символо) не изменится. Если ничего не путаю.
3.14159265 19.10.2011 17:33 # 0
return ((beginIndex == 0) && (endIndex == count)) ? this :
new String(offset + beginIndex, endIndex - beginIndex, value);
// Package private constructor which shares value array for speed.
String(int offset, int count, char value[]) {
this.value = value;
this.offset = offset;
this.count = count;
}
SmackMyBitchUp 19.10.2011 20:17 # 0
String a="123",b;
b = a.substring(0,3);
b.concat("456");
то
System.out.println(a);
Выведет в консольке - 123456
3.14159265 19.10.2011 20:33 # 0
Оно по идее выведет стектрейс с ошибкой.
>(0,3);
Строки в жабе иммутабельны. + массивы что в них не умеют менять размер.
При concate создастcя новый массив, скопирует туды оба значения и вернет новый стринг и с новым внутренним массивом.
SmackMyBitchUp 19.10.2011 20:49 # 0
Nemoden 19.10.2011 18:03 # +2
SmackMyBitchUp 19.10.2011 20:07 # 0
Студентота. А JavaScript только в следующем семестре.
Но все таки. Где посмотреть можно?
Nemoden 20.10.2011 03:46 # 0
По части книг я бы порекомендовал Eloquent Javascript (Marijn Haverbeke), JavaScript: The Good Parts (Douglas Crockford), Javascript Patterns (Stoyan Stefanov). Ну потом можно, в принципе, прочитать еще Hight Performance Javascript. Сам очень советую Javascript Patterns, но она больше для "продвинутых" нежели Eloquent JS и JS The Good Parts.
P.S. Протаете всё, на след. курсе на лекции по JS можно будет не ходить ;-)
SmackMyBitchUp 20.10.2011 10:02 # 0
При условии, что я сделаю все лабы и смогу объяснить какие действия происходят в каждой строчке кода.
Слава Богу, преподаватель требовательный
bugmenot 20.10.2011 13:12 # 0
А вот это уже немного беспокоит
Lure Of Chaos 20.10.2011 13:57 # 0
roman-kashitsyn 20.10.2011 13:59 # −5
bugmenot 20.10.2011 14:05 # 0
roman-kashitsyn 20.10.2011 14:15 # 0
SmackMyBitchUp 25.10.2011 17:13 # 0
roman-kashitsyn 25.10.2011 17:17 # +2
hormand 13.02.2023 16:06 # 0
jabber 09.11.2011 17:34 # −7