оптимизация в одну строку





  • 😱



  • @usertrue 0_1559490095954_2019-06-02_194022.png

    Работает но вот читабельнее=).



  • @tts9 Да может кому пригодится

    if (VAR_LIST_ELEMENT.indexOf(".") >= 0) {
    ваше_что_то= VAR_LIST_ELEMENT.split("//")[1].split("/")[VAR_LIST_ELEMENT.split("//")[1].split("/").length - 1].split(".")[VAR_LIST_ELEMENT.split("//")[1].split("/")[VAR_LIST_ELEMENT.split("//")[1].split("/").length - 1].split(".").length - 1]
    }
    

    сам говнокод оптимизированный код )) как видно из скрина он получает из урлы ее "конец" и сразу проверяет, а есть ли он).



  • Подскажите, по аналогичному вопросу, нужно кодом в одну строку получить половину строки:

    ....iterateNext().nodeValue.trim().substr(length/2)
    

    т.е. нужно вызвать length внутри другой функции, но не имея указатель на саму строку... как то так.
    Пробовал this.length и self.length - не получается.



  • @vituskosoy А что мешает сохранить промежуточный результат?



  • @usertrue, скрипт так сделан, что может выполнять только однострочную команду :(
    По вопросу оказалось, что не работает деление, вычитание норм, т.е. .substr(length-100) - ок.



  • @vituskosoy said in оптимизация в одну строку:

    @usertrue, скрипт так сделан, что может выполнять только однострочную команду :(
    По вопросу оказалось, что не работает деление, вычитание норм, т.е. .substr(length-100) - ок.

    Прекращайте шутить )) length-100 это не работает тк вы ожидаете, без строки вы не можете получить ее длину. Вы просто получаете строку с конца тк 0 - 100 = -100

    Если уж сильно хочется то можно так, только это крайне не оптимально, еще можно eval попытать

    "привет".split('').filter(function(char,i, arr){return  i< arr.length/2}).join('') 
    


  • @usertrue, спасибо ваш способ работает, буду ковырять его. Кстати сравнил substr(length-20) и substr(-20) , выдают похожие результаты, первый дает точно 20 последних символов, а второй 14 (может неправильно определяет длину из-за смеси кирилицы/латиницы).


Log in to reply