JS и его "недостатки"
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.123] |
|
|
Правила раздела:
| Страницы: (66) « Первая ... 63 64 [65] 66 ( Перейти к последнему сообщению ) |
JS и его "недостатки"
|
Сообщ.
#961
,
|
|
|
|
Как и динамическая и слабая типизация. Только зависимые типы, только хардкор! =) |
|
Сообщ.
#962
,
|
|
|
|
Цитата korvin @ Об этом и речь. Ох уж эти ООПнутые, так и норовят везде засунуть эту свою инкапсуляцию, наследование и прочий полиморфизм, даже там, где оно нужно как рыбе зонтик. Как и динамическая и слабая типизация. |
|
Сообщ.
#963
,
|
|
|
|
Парам-парам-пам!
![]() ![]() > x = ['10','10','10'] [ '10', '10', '10' ] > x.map(parseInt) [ 10, NaN, 2 ] Не помню, было уже или нет. |
|
Сообщ.
#964
,
|
|
|
|
Добавлено зато работает это: ![]() ![]() x.map(parseFloat) |
|
Сообщ.
#965
,
|
|
|
|
Цитата korvin @ Парам-парам-пам! ![]() ![]() > x = ['10','10','10'] [ '10', '10', '10' ] > x.map(parseInt) [ 10, NaN, 2 ] Не помню, было уже или нет. Объясните мне, как такое может быть? |
|
Сообщ.
#966
,
|
|
|
|
Цитата korvin @ Парам-парам-пам! ![]() ![]() > x = ['10','10','10'] [ '10', '10', '10' ] > x.map(parseInt) [ 10, NaN, 2 ] Не помню, было уже или нет. Ну и жесть. |
|
Сообщ.
#967
,
|
|
|
|
Цитата applegame @ Объясните мне, как такое может быть? да всё просто - это js Добавлено Добавлено просто вы не понимаете его прототипов |
|
Сообщ.
#968
,
|
|
|
|
Цитата Serafim @ просто вы не понимаете его прототипов А чего там понимать? Примитивнейшая вещь. И да, прототипы здесь совершенно ни при чём. Дело в том, что map вызывает переданную функцию с тремя аргументами: текущим элементом, его индексом и собственно массивом, от которого мы вызвали map. А parseInt принимает два аргумента: строку и основание системы счисления, которое может не передаваться и тогда принимается за 10. Но map то туда передаёт индекс |
|
Сообщ.
#969
,
|
|
|
|
всё равно ты ничего не понимаешь!
|
|
Сообщ.
#970
,
|
|
|
|
Цитата Serafim @ всё равно ты ничего не понимаешь! Иногда лучше жевать. |
|
Сообщ.
#971
,
|
|
|
|
Т.е. korvin неправильно использует функции? Ну ок
|
|
Сообщ.
#972
,
|
|
|
|
Цитата D_KEY @ Т.е. korvin неправильно использует функции? Ну ок Не я. Да, не правильно. Нет, это не отменяет идиотизма авторов такой функции map, ни в одном языке такого непотребства нет. =) |
|
Сообщ.
#973
,
|
|
|
|
Ну это не так страшно - ты можешь написать свой map. А вот если бы там была какая-нибудь запутанная логика, вроде хитростей при работе с массивом и/или строками, вот тогда было бы совсем печально.
|
|
Сообщ.
#974
,
|
|
|
|
Цитата D_KEY @ Ну это не так страшно - ты можешь написать свой map Угу, как-то так ![]() ![]() Array.prototype.map = (function() { var original = Array.prototype.map; return function(fun) { return original.call(this, function(arg) { return fun(arg); } ); }; })(); var x = ['10','10','10']; print(x.map(parseInt)); |
|
Сообщ.
#975
,
|
|
|
|
Цитата MyNameIsIgor @ Array.prototype.map ага ага, ![]() ![]() for (i of x) { console.log(i); } |