Ответы пользователя по тегу JavaScript
  • Как сохранить js blob как файл на сервере?

    Delgus
    @Delgus Автор вопроса
    надо mimeType указывать. тогда все норм
    img.cropper("getCroppedCanvas").toBlob((blob) => {
                blob.name = file.name;
                uploadImg = blob;
     }, mimeType);
    Ответ написан
    Комментировать
  • Как наиболее быстро перебрать массив?

    Delgus
    @Delgus
    Я бы примерно так накатал за 15 минут
    arr = [1 , 3 , 10 , 11 , 18 , 5];
    x = 2;
    
    arr.sort((a,b) => a > b);
    
    result = [];
    currentResultIndex = 0;
    result.push([]);
    result[currentResultIndex].push(arr[0]);
    
    for(let i in arr) {
      if(i == 0) {
        continue;
      }
      if(arr[i] - arr[i-1] > x) {
        currentResultIndex++;
        result.push([]);
      }
      result[currentResultIndex].push(arr[i]);
    }
    
    console.log(result);

    Можно код подулучшить и соптимизировать, я в js не огонь.
    В result массив с дорогами.
    Ответ написан
    Комментировать
  • Как решить проблему с длинным URL?

    Delgus
    @Delgus
    Многие согласились использовать POST в таких случаях
    https://stackoverflow.com/questions/14202257/desig...

    Особое извращение - использовать X-HTTP-Method-Override: GET
    POST /books
    Entity body
    { "title": "Ipsum", "year": 2017 }
    Headers
    X-HTTP-Method-Override: GET



    — Оставить GET, но передавать данные (ну или их часть) не в query string, а в body запроса

    Очень-очень не рекомендуется.
    https://stackoverflow.com/questions/978061/http-ge...
    Ответ написан
    Комментировать
  • Что делает функция?

    Delgus
    @Delgus
    аналог bind для IE8- и старых версий других браузеров. Но лучше наверно использовать полифилл -
    https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ну или использовать библиотеку - es5-shim.js

    про call, apply и bind - можно здесь почитать например
    https://getinstance.info/articles/javascript/call-...

    Метод bind() используется преимущественно для того, чтобы вызвать функцию с явным указанием значения this. Другими словами, bind() позволяет нам указать, ссылка на какой объект будет значением this, когда функция будет вызвана, и вызвать эту функцию.


    function bind( method, context) {
        //удаляем первые два аргумента - method,context
        var args = Array.prototype.slice.call(arguments,2);
        
        return function () {
        //те аргументы которые добавлены в method через bind остаются + добавляем те 
        //  которые при вызове функции добавлены
        var a = args.concat(Array.prototype.slice.call(arguments,0));
        //возвращаем функцию method, где контекст вызова(this) - context 
        return method.apply(context, a); 
        }
      }
        
      function getThisAndParams(...a){
        console.log(this);
        a.forEach(function(el){
          console.log(el);
        });
      }
     
     var arr = [2,3,6,8];
     var method1 = bind(getThisAndParams,arr);
     method1('hello','world','Vasya'); //выведет массив arr и "Hello" "world" "Vasya"
     var method2 = bind(getThisAndParams,arr,'Yo yo yo');
     method2('hello','world','Vasya'); //выведет массив arr и 'Yo yo yo' 'hello' 'world' 'Vasya'


    Зачем на практике использовать такое - вам лучше знать, вы же нашли эту функцию.
    Но на мой взгляд все эти танцы с бубнами устарели с появлением стрелочных функций
    https://developer.mozilla.org/ru/docs/Web/JavaScri...

    Но так как вы судя по всему не понимаете что такое контекст вызова функции то ловите
    https://www.youtube.com/watch?v=LM0tW2MZJZ4
    Ответ написан
    Комментировать