Javascript.RU

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

так и запишем - проблему высосал из пальца)
__________________
.ня
Ответить с цитированием
  #102 (permalink)  
Старый 22.11.2012, 22:02
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

for( var item= $i( items ); item.next(); ){
    item.owner().push( 'foo' ) // добавили элемент в список
    item.owner( item.owner().concat([ 'foo', 'bar' ]) ) // добавили список в список
    item.key( item.key() - 1 ) ) // сдвинули указатель на предыдущий элемент
    // и ушли в бесконечный цикл)
}
__________________
.ня
Ответить с цитированием
  #103 (permalink)  
Старый 22.11.2012, 22:02
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

У меня не настолько уж проблемные пальцы. А тебе просто советую побольше поработать, а потом брать дядек на айда с примерами в студии. Есть тут у нас еще один Якубович, Ливандериамариумом зовется, тоже любитель "покажи да докажи".
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #104 (permalink)  
Старый 22.11.2012, 22:04
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от tenshi
...
item.owner().push( 'foo' ) // добавили элемент в список
...
Фу фу фу, бросай ты эту затею.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #105 (permalink)  
Старый 22.11.2012, 22:13
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

ещё один спесивый юнец) тоже из яндекса?
__________________
.ня
Ответить с цитированием
  #106 (permalink)  
Старый 23.11.2012, 00:42
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от tenshi
контрпример в студию)
Сообщение от tenshi
так и запишем - проблему высосал из пальца)
Сообщение от tenshi
ещё один спесивый юнец) тоже из яндекса?
вот тебе контр пример: https://github.com/devote/QSA/blob/master/qsa.js хотя то как ты тут общаешься, боюсь программирование в JS на более низком уровне, для тебя темный лес... Что же поделаешь, судьба всех джукверистов.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #107 (permalink)  
Старый 23.11.2012, 17:11
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> вот тебе контр пример: https://github.com/devote/QSA/blob/master/qsa.js

какой пиздец.. и где там _необходимо_ модифицировать итерируемый массив?

вот пример более грамотной архитектуры для выборки по селектору
function jpath( path ){ // jpath 3a1
    var cache= jpath.cache
    var result= cache[ path ]
    if( result ) return result
    
    var types= jpath.types
    var processors= []
    path.replace
    (   /([.])([^.\s]*)/g
    ,   function( str, type, name ){
            processors.unshift( types[ type ]( name ) )
        }
    )
    
    return cache[ path ]= function( ){
        var list= [].slice.call( arguments )
        for( var i= processors.length; --i >= 0 && list.length ; ){
            list= processors[ i ]( list )
        }
        return list
    }
}
jpath.cache= {}
jpath.types= {}
    
jpath.types[ '.' ]= function( name ){
    if( !name ) return function( list ){
        var result= []
        list.forEach( function( value ){
            for( var name in value ){
                var val= value[ name ]
                if( val == null ) continue
                result.push( val )
            }
        })
        return result
    }
    
    return function( list ){
        if( list.length === 1 ){
            value= list[ 0 ]
            if( value == null ) return []
            return[ value[ name ] ]
        }
        
        var result= []
        list.forEach( function( value ){
            var val= value[ name ]
            if( val == null ) return
            result.push( val )
        })
        return result
    }
}

console.log( jpath( '. .a .length' )( [ 123, { a: "12" }, 0 ] ) )



> хотя то как ты тут общаешься, боюсь программирование в JS на более низком уровне, для тебя темный лес... Что же поделаешь, судьба всех джукверистов.

да тут куда не плюнь попадёшь в какого-нибудь низкоуровневого специалиста
__________________
.ня
Ответить с цитированием
  #108 (permalink)  
Старый 23.11.2012, 19:26
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от tenshi
вот пример более грамотной архитектуры для выборки по селектору
я вижу лишь говнокод
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #109 (permalink)  
Старый 23.11.2012, 19:51
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

Сообщение от devote Посмотреть сообщение
я вижу лишь говнокод
по каким признакам ты учуял тут говнокод?
__________________
.ня
Ответить с цитированием
  #110 (permalink)  
Старый 23.11.2012, 22:10
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от tenshi
46 var result= []
47 list.forEach( function( value ){
48 var val= value[ name ]
49 if( val == null ) return
50 result.push( val )
51 })
52 return result
53 }
return list.filter(function (val) {
    return !!val[name];
});
Ответить с цитированием
Ответ



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

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


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