Ответы пользователя по тегу JavaScript
  • Как решить Uncaught TypeError: Cannot read properties of undefined (reading 'classList')?

    @kttotto
    пофиг на чем писать
    Либо нет у Вас такого элемента в ДОМ как .nav-p-menu, либо массив начинается с нуля.
    Ответ написан
  • Как правильно импортировать модуль js в js без html?

    @kttotto
    пофиг на чем писать
    В ошибке все написано. Вы не можете использовать этот синтаксис для файла, который находится вне модуля. Чтобы выбрать вариант решения, нужно точнее понимать как Вы формируете свою сборку? Вы используете какой-то сборщик или просто js файлики. Если используете сборщик, то type: "module" в package.json может решить проблему ил возможно у Вас не указаны версии ES6.
    Если никаких сборщиков не используете, то попробуйте более древний способ config=require(./config.js.js); Или можете создать модуль и импортировать из модуля.
    Ответ написан
  • Как исправить ошибки в консоли от javascript?

    @kttotto
    пофиг на чем писать
    У Вас бесконечный цикл, нет условия проверки значения i, индекс выходит за пределы размера массива aboutSliderItem и там соответственно нет тех свойств, которые Вы хотите прочитать. Подозреваю, что нужно
    for (let i = 0; i < aboutSliderItem.length; i++)
    Ответ написан
    1 комментарий
  • Почему рекурсия начинает идти в обратную сторону?

    @kttotto
    пофиг на чем писать
    1.  function getFactorial(num) {
    2.    console.log(num)
    3.    if (num <= 1) {
    4.      return
    5.    } else {
    6.      getFactorial(num - 1)
    7.      console.log(num)
    8.      return
    9.    }
    10. }
    11.
    12. getFactorial(4)


    Что такое стек знаете? В рекурсии вызовы будут в виде стека, последним пришел - первым вышел.

    1. Вызов getFactorial(4), отработает строка 2, покажет '4'
    2. На строке 6 вызов getFactorial(3), отработает строка 2, покажет '3'
    3. На строке 6 вызов getFactorial(2), отработает строка 2, покажет '2'
    4. На строке 6 вызов getFactorial(1), отработает строка 2, покажет '1'
    5. Выход из функции getFactorial(1), отработает строка 4
    6. Продолжится выполнение функции getFactorial(2), отработает строка 7, покажет '2'
    7. Выход из функции getFactorial(2), отработает строка 8
    8. Продолжится выполнение функции getFactorial(3), отработает строка 7, покажет '3'
    9. Выход из функции getFactorial(3), отработает строка 8
    10. Продолжится выполнение функции getFactorial(4), отработает строка 7, покажет '4'
    11. Выход из функции getFactorial(4), отработает строка 8
    Ответ написан
    2 комментария
  • Property 'createMessageComponentCollector' does not exist on type 'TextChannel'. Как исправить?

    @kttotto
    пофиг на чем писать
    Вы бы показали сам тип Message. Я так понимаю он имеет метод createMessageComponentCollector().
    Вся штука в том, что await message.reply() возвращает не тип Message, поэтому он этот метод найти и не может. Точнее имена полей и их типы могут совпадать, а вот метода не будет, он с сервера не приходит.
    Поэтому, в этом случае, думаю нужно создать экземпляр руками, а потом смапить поля. Что-то типа этого
    reply = await message.reply();
    const message = new Message();
    message.property1 = reply.property1;
    message.property2 = reply.property2;
    ...
    message.createMessageComponentCollector();
    Ответ написан
  • Существует ли JavaScript-фреймворк для фронт-енда, бек-енда и SSR, который реально простой и удобный?

    @kttotto
    пофиг на чем писать
    Никто Вам здесь не назовет такой фреймворк.

    Вы хотите практически готовый продукт под Вашу постановку. Но так бывает с тем же шансом, что попасть в зеро в рулетке. Именно поэтому и нужны разработчики. И сдается мне, что большинство Ваши требований от непонимания как это приготовить самостоятельно.

    Когда-то на заре своей рабочей деятельности, я, такой молодой и крутой пришел на первую работу. Посмотрел на кусок кода и сказал "Что за говно? Я напишу лучше.". Промудохавшись целый день, к вечеру, я вдруг понял, что у меня получилось практически тоже самое. Это было мне уроком, доверять чужому коду и что с такими оценками в дураках могу оказаться я. А позже я стал замечать, что критики всего и вся по большей части люди с низкой компетенцией, не понимающие, как это работает внутри.

    1. Сравните их опыт и свой, их компетенцию и свою. Может в этом дело?
    2. Он не обязан это делать. Кроме того, очень мало кого заинтересует сразу все из коробки и еще в такм виде как именно Вам нужно.
    3. Не понимаю проблемы, все решаемо, просто Вы зациклились на каком-то своем решении, поэтому не видите других.
    4. Это опять "Хочу все и сразу и так как мне это надо". Сервис, это не обязательно именно бэк вэба, не все хотят делать сервисы в монолите web api.
    5. Это решаемо руками и недолго, зачем это делать из коробки?
    6. Оценка "нормальный" очень субьективна.
    7. Это решаемо. Думаю Вы не разобрались или хотите решить каким-то особым способом. Не все решается одинакого.
    Ответ написан
    1 комментарий
  • Что нужно вернуть, чтобы прекратить рекурсию?

    @kttotto
    пофиг на чем писать
    Если не найдена, то ничего возвращать и не надо.
    function getValue(objectValus, property) {
        for (let prop in objectValus) {
            if (prop === property) {
                if (typeof(objectValus[prop]) === 'object') {
                    return getValue(objectValus[prop], property);
                }
                return objectValus[prop];
            }
        }
        return undefined;
    }
    Ответ написан
    Комментировать
  • Почему тайм-аут ожидания ответа сервера не работает нормально?

    @kttotto
    пофиг на чем писать
    Наверное потому, что clearTimeout(xhrTimeout) срабатывает раньше, чем проинициализируется xhrTimeout и на клиенте падает с ошибкой.
    Александр Черемхин Вам правильно написал, сначала инициализация xhrTimeout, а потом только вызов.
    Ответ написан
    Комментировать
  • В чем отличие списка от массива js?

    @kttotto
    пофиг на чем писать
    Отмеченный ответ не имеет ничего общего с js. Массив в js, это не тот массив, что в C++ или Java.

    В большинстве языков, список, это абстракция, которая предоставляет возможность пройтись по элементам и дает какое-то api на доступ, вставку, удаление и т.д. Список внутри может быть чем угодно, может быть массивом, может быть односвязным списком, бинарным деревом, хэш-таблицей, в которой будешь обращаться вроде как к индексу, а за ним, на самом деле хэш.
    Массив, действительно, это рядом стоящие в памяти значения. Преимущества, быстрый доступ, т.к он идет всего лишь по сдвигу от начала массива, но вставить невозможно, т.к. под массив выделяется конкретный размер памяти с учетом его типа. Массив можно только пересоздать с новыми значениями.

    Поэтому ответом на вопрос может быть то, что Список - это абстракция, а Массив - это его конкретная реализация.
    Ответ написан
    Комментировать
  • Не пойму ошибку в async await?

    @kttotto
    пофиг на чем писать
    Потому что второй параметр в connection.query это колбэк и возврат из connection.query происходит раньше, чем выполняется этот колбэк. Т.е. произошел возврат, выполнился console.log(2), а потом только отработал колбек с console.log(1).
    Ответ написан
  • Как проверить в начале весь массив на одно условие, а потом на другое?

    @kttotto
    пофиг на чем писать
    На коленке, первое, что в голову пришло. Не проверял, но, думаю, смысл понятен.
    const source = [ grape, plum, banana, apple ];
    const required = [banan, apple];  // То, что ищем в порядке приоритета
    const found = [];  // Сюда складываем то, что нашли в массиве
    
    let result = null;
    
    for(let fruit of source) {
        if(required[0] === fruit) {
            result = fruit;
            return;
        }
    
        if(required.some(d => d === fruit) {
            found.push(fruit);
        }
    }
    
    for(let item of required) {
        if(found.some(f => f === item)) {
            result = item;
            return;
        }
    }
    Ответ написан
    Комментировать
  • Откуда вы берете интересные штуки на html, css, jquery?

    @kttotto
    пофиг на чем писать
    Я вдохновляюсь здесь. Просто в поиск вбить интересующую библиотеку или название контрола и будет куча примеров.
    Ответ написан
    Комментировать
  • Как мне получить доступ к значениям компонента angular из контекста функции window?

    @kttotto
    пофиг на чем писать
    А если так?
    window.onpopstate = (event) => {
       console.log(this);
       this.my_func();  //идёт потеря контекста, а мне нужно запустить эту функцию
    };

    Или
    ngOnInit(){
        this.my_func();
    
        const self = this;
    
        window.onpopstate = function(event) {
        console.log(self );
        self.my_func();  //идёт потеря контекста, а мне нужно запустить эту функцию
      };
    }

    Или
    const callback = function(event) {
        console.log(this);
        this.my_func();
    }
    window.onpopstate = callback.bind(this);
    Ответ написан
    Комментировать
  • Как получить данные формы в виде массива объектов?

    @kttotto
    пофиг на чем писать
    const source = { a:1, b:2, c:3 }
    const result = [];
    for(let key in source){
       const ob = {};
       ob[key]=source[key];
       result.push(ob);
    }
    Ответ написан
  • Как передать массив из c# в javascript?

    @kttotto
    пофиг на чем писать
    Судя по тэгу Вы хотите это сделать в ASP MVC приложение.
    Там есть вариант сделать это на вьюшке с помощью Razor

    <script>
    	var model = @Json.Serialize(Model.yourArray);
    	
    	var model2 = @Html.Raw(JsonConvert.SerializeObject(Model.yourArray));
    	
    	var model3 = [@Model.yourArray[0], @Model.yourArray[1], @Model.yourArray[2]]
    </script>
    Ответ написан
  • Как правильно описать объект в модели на TypeScript?

    @kttotto
    пофиг на чем писать
    export default class Model {
        _total: { [key: string]: any } = {};
    
        constructor() {
            super();
            this._total['value'] = 1;
            this._total['btn'] = {
                    add: true,
                    rem: false
            };
        }
    }


    Если все будете превращать в any, то толку от typescript не будет. Поэтому лучше типизируйте свои свойства как то так
    class Total {
        value: number,
        btn: {
            add: boolean,
            rem: boolean
        }
    };
    
    export default class Model {
        _total: Total;
    
        constructor() {
            super();
            this._total= new Total {
                value: 1,
                btn: {
                    add: true,
                    rem: false
                }
            };
        }
    }
    Ответ написан
    Комментировать
  • Как можно передать объект в JS скрипт?

    @kttotto
    пофиг на чем писать
    const traing = @JsonConvert.SerializeObject(traingObj)
    start(traing )
    Ответ написан
    Комментировать
  • Как на стороне клиента принять данные по частям при GET запросе?

    @kttotto
    пофиг на чем писать
    Если Вы не можете использовать пагинацию данных, то никак. Если Вы имеете доступ к оптимизации бд, то может имеете доступ и к backend, тогда добавить api, чтобы можно было получать часть данных по параметрам страница и кол-во данных на странице.
    А в таком варианте можно посоветовать только отрисовывать параллельно, может пару секунд сэкономится.
    Ответ написан
    Комментировать
  • Что посоветуете для динамического рендеринга html в ASP.NET MVC приложении?

    @kttotto
    пофиг на чем писать
    На razor сингл пейдж не сделать, ибо razor - это рендеринг на стороне сервера. Можно реактом и не пользоваться, но без js не обойтись. Аяксом запросить частичное представление и результат вставить в блок модального окна.

    В коде это примерно так будет
    $.ajax({
    	type: "POST",
    	url: window.baseUrl + "Controller/Action",
    	data: params,
    	success: function (result) {
    		if (result) {
    			$(".modal").html(result);
    		}
    	})
    	
    public ActionResult Action(IncomingParameters params)
    {
    	var model = Anything(params);
    	return PartialView("Action", model);
    }
    Ответ написан
  • Как привести Date обьект js в DateTime формат C#?

    @kttotto
    пофиг на чем писать
    К Вам приходит дата с учетом часового пояса. Тип DateTime часовой пояс не учитывает, значит Вы будете терять время при приведении. Если время зависит от локали и часовой пояс необходим, то принимать время нужно в формате DateTimeOffset (ну или приводить к нему, если принимаете строку), тогда время теряться не будет.
    Ответ написан