Как добавить новые элементы в массив javascript, не перебирая то, что уже находится внутри массива

Как добавить новые элементы в массив javascript, не перебирая то, что уже находится внутри массиваI объявили эти 2 массива

var newUnitsToGenerateObj = [];
    var newUnitsToGenerate = {
        UnitTypeID: null,
        NumOfUnits: 0
    };

в моем пользовательском интерфейсе я хочу, чтобы пользователь выбрал единство, и я хочу передать его в новые единицы для генерации, а затем передать в новые единицы для генерации объекта. Я думал, что это будет довольно просто, как это

   function AddUnitsToConfig() {
        newUnitsToGenerate.UnitTypeID = $('#UnitTypeID').ejDropDownList('model.value');
        newUnitsToGenerate.NumOfUnits = $('#NumOfUnits').val();

        newUnitsToGenerateObj.push(newUnitsToGenerate);

        console.info(newUnitsToGenerateObj);
    }

поэтому эта функция вставляет первое значение, как и ожидалось, при нажатии кнопки, но если она нажимается второй раз с новыми значениями, это переопределяет то, что было в массиве с новыми данными, поэтому у меня есть длина 2, как и ожидалось, но они одинаковы значения. Я хочу создать newunitstogenerateobj, а затем передать его на сервер.

Трудно сказать, поскольку вы, похоже, используете SyncFusion, но если #UnitTypeID / #NumOfUnits каждый раз соответствует разным элементам, то у вас будут элементы с повторяющимися идентификаторами, что является недопустимой разметкой и приведет к путанице jQuery (в результате чего один и тот же элемент будет каждый раз целенаправленно).

Obsidian Age 06.03.2019 02:43

Я не могу повторить. Обратите внимание, что вы продолжаете изменять один и тот же объект, поэтому все ссылки на него, которые вы добавляете в массив, будут иметь одинаковые значения. Вместо этого создайте новый объект, который будет помещаться в массив.

Jared Smith 06.03.2019 02:43

Джаред, я сделал то, что вы сказали, и это работает, спасибо, и результаты, которые ребята показали ниже, работают.

Josh Deshazer 06.03.2019 02:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ты мутируешь newUnitsToGenerate каждый раз, когда звонишь AddUnitsToConfig. Вы хотите помещать объект новый в массив при каждом вызове:

function AddUnitsToConfig() {
    newUnitsToGenerateObj.push({
        UnitTypeID: $('#UnitTypeID').ejDropDownList('model.value');
        NumOfUnits: $('#NumOfUnits').val();
    });

    console.info(newUnitsToGenerateObj);
}

Объявите пустой json. внутри функции

var newUnitsToGenerateObj = [];


function AddUnitsToConfig() {
    var newUnitsToGenerate = {};
    newUnitsToGenerate['UnitTypeID'] = $('#UnitTypeID').ejDropDownList('model.value');
    newUnitsToGenerate['NumOfUnits'] = $('#NumOfUnits').val();

    newUnitsToGenerateObj.push(newUnitsToGenerate);

    console.info(newUnitsToGenerateObj);
}

Другие вопросы по теме