Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #111 (permalink)  
Старый 23.11.2012, 23:45
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от melky Посмотреть сообщение
return list.filter(function (val) {
    return !!val[name];
});
тогда уж так:
return list.map(function (value) {
    return value[name]
}).filter(function (val) {
    return !!val;
});

но как-то это криво)
__________________
.ня
Ответить с цитированием
  #112 (permalink)  
Старый 23.11.2012, 23:51
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tenshi
тогда уж так:
зачем??
Ответить с цитированием
  #113 (permalink)  
Старый 24.11.2012, 00:28
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

у тебя результат не правильный потому что
__________________
.ня
Ответить с цитированием
  #114 (permalink)  
Старый 24.11.2012, 03:57
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Кормить Тенши больше не хочется.

У меня вопрос, для которого не хочется создавать отдельную тему и который уже когда-то обсуждался: для чего создан void в JS? Я не думаю, что у создателей языка просто зачесалась левая пятка и они решили добавить альтернативу undefined. Я вижу только одну возможную причину: использование void там, где undefined может быть перезаписана. Но, все равно, это мне кажется неадекватным костылем, иначе перезапись undefined могли бы запретить, как и перезапись NaN, Infinity и др.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #115 (permalink)  
Старый 24.11.2012, 12:57
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> Кормить Тенши больше не хочется.

слив засчитан)

> для чего создан void в JS?

void function(){
    // ...
}()

> иначе перезапись undefined могли бы запретить

думаю тогда и undefined никакого не было. люди просто юзали эту неопределённую переменную
__________________
.ня
Ответить с цитированием
  #116 (permalink)  
Старый 24.11.2012, 14:36
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tenshi
у тебя результат не правильный потому что
поподробнее. в чём ошибка?
Ответить с цитированием
  #117 (permalink)  
Старый 24.11.2012, 14:38
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от melky Посмотреть сообщение
поподробнее. в чём ошибка?
внимательно посмотри чем отличаются оба кода. если ты не видишь разницы, то у меня для тебя плохие новости.
__________________
.ня
Ответить с цитированием
  #118 (permalink)  
Старый 24.11.2012, 14:44
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tenshi
внимательно посмотри чем отличаются оба кода. если ты не видишь разницы, то у меня для тебя плохие новости.
действительно

Сообщение от tenshi Посмотреть сообщение
тогда уж так:
return list.map(function (value) {
    return value[name]
}).filter(function (val) {
    return !!val;
});

но как-то это криво)
тогда так :
return list.reduce(function (data, value) {
    value[name] && data.push(value[name]);
    return data;
}, []);
Ответить с цитированием
  #119 (permalink)  
Старый 24.11.2012, 15:47
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

reduce в данном случае имеет более сложную семантику, а так, да, можно и его. но я бы предпочёл всё же итераторы, чтобы иметь полный контроль над потоком исполнения.
к тому же, в более других случаях нужно обеспечивать ещё и уникальность значений в результирующем массиве, а для этого всё-равно нужно снаружи создавать хэшик для быстрого определения наличия значения.
__________________
.ня
Ответить с цитированием
  #120 (permalink)  
Старый 24.11.2012, 19:30
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от tenshi
void function(){
    // ...
}()
Я понимаю, что ты взял первый попавшийся пример применения, но ты наверно не понял меня: для чего создан void? Мгновенный запуск анонимных функций можно реализовать еще несколькими методами.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы Gozar Сайт Javascript.ru 2 23.05.2010 02:27