18.10.2011, 13:33
|
|
Профессор
|
|
Регистрация: 09.07.2007
Сообщений: 304
|
|
wtf javascript
просто нет слов. мож кто объяснить зачем они так сделали ?
var m = [23,,,,45];
alert(m.indexOf(m[1]));
|
|
18.10.2011, 13:36
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Как так?
По примеру: первого элемента в массиве не существует, поэтому m[1] == undefined. Но ни одно undefined в массиве нет.
var m = [23,,,undefined,45];
alert(m.indexOf(m[1]));
|
|
18.10.2011, 13:50
|
|
Профессор
|
|
Регистрация: 09.07.2007
Сообщений: 304
|
|
Kolyaj,
ну и что, что нет. это же массив.
где тут здравый смысл бегать по массиву как по хешу.
|
|
18.10.2011, 14:16
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Потому что массив в JavaScript-е не то же самое, что массив в PHP, и уж тем более не то же самое, что массив в Си.
http://alljs.ru/articles/array/whatis
|
|
18.10.2011, 15:40
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от Kolyaj
|
Потому что массив в JavaScript-е не то же самое, что массив в PHP, и уж тем более не то же самое, что массив в Си.
|
тогда length неверно работает (по нему второй элемент все же есть). По моему, они там сами не разобрались еще как правильно.
|
|
18.10.2011, 15:42
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Riim
|
тогда length неверно работает
|
Что значит неверно? Он работает по спецификации. Нигде не сказано, что он равен количеству элементов в массиве.
|
|
18.10.2011, 15:50
|
|
Рассеянный профессор
|
|
Регистрация: 06.04.2009
Сообщений: 2,379
|
|
Сообщение от Kolyaj
|
Он работает по спецификации.
|
я понимаю, спецификация и все такое, но просто с точки зрения обычного человеческого восприятия, ни фига ненормально, когда forEach срабатывает меньше раз, чем написано в length. Называлось бы это свойство maxIndex, никаких вопросов бы не было.
|
|
18.10.2011, 15:52
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Я не любитель обсуждать вещи, которые невозможно изменить. Это как о политике на кухне разговаривать. Есть свойство, у него есть название, у него есть предопределённое поведение. Зачем рассуждать, что по чьему-то мнению оно работает не правильно?
|
|
18.10.2011, 16:32
|
|
Профессор
|
|
Регистрация: 01.07.2010
Сообщений: 387
|
|
Цитата:
|
Зачем рассуждать, что по чьему-то мнению оно работает не правильно?
|
Ну может лет эдак через 15 мы будем пользоваться riimscript-ом где будет всё проще и понятнее?
|
|
18.10.2011, 16:39
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Если на кухне порассуждать о "довели страну", жизнь в стране лучше не станет.
|
|
|
|