Ответы пользователя по тегу JavaScript
  • Как избежать такой вложенности циклов?

    @mn3m0n1c_3n3m1
    Разделяй и властвуй:
    const allChildren = getAllChildren(array);
    const textChildren = getTextChildren(allChildren);
    const arr = getResultArr(textChildren);
    
    function getAllChildren(array) {
        const allChildren = [];
        
        for (const {key, value} of array) {
            if (key.value !== 'content')
                continue;
    
            allChildren.push(...value.children);
        }
        
        return allChildren;
    }
    
    function getTextChildren(allChildren) {
        const textChildren = [];
    
        for (const text of allChildren) {
            textChildren.push(...text.children);
        }
        
        return textChildren;
    }
    
    function getResultArr(textChildren) {
        const arr = []
        
        for (const {key, value} of textChildren) {
            if (key.value !== 'mods')
                continue;
    
            const [first] = value.children;
            const {key, value, loc} = first;
            
            if (key.value !== 'size')
                continue;
    
            arr.push({
                loc,
                value: value.value,
            });
        }
        
        return arr;
    }
    Ответ написан
    Комментировать
  • Как можно оптимизировать данный код?

    @mn3m0n1c_3n3m1
    const getRect = (el) => el.tooltip.element.getBoundingClientRect();
    
    function isThumbsCollision({from, to, settings}) {
        const fromRect = getRect(from);
        const {top, right, height, width} = getRect(to);
    
        if (settings.isVertical)
            return top - fromRect.top <= height;
    
        return right - fromRect.right <= width
    }
    Ответ написан
  • JavaScript, имитация файлового менеджера

    @mn3m0n1c_3n3m1
    Cloud Commander - двухпанельный файловый менеджер на JavaScript, правда это не фреймворк, а полноценное приложение. Серверная сторона написана на node.js, клиентская работает в браузере. В нём есть контестное меню, а так же возможность просмотра графических и редактирование текстовых файлов (с поддержкой больше 110 языков и встроенной подсветкой синтаксиса). А так же возможность работы со множеством облачных сервисов, включая dropbox.
    Ответ написан
    Комментировать