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, а затем передать его на сервер.
Я не могу повторить. Обратите внимание, что вы продолжаете изменять один и тот же объект, поэтому все ссылки на него, которые вы добавляете в массив, будут иметь одинаковые значения. Вместо этого создайте новый объект, который будет помещаться в массив.
Джаред, я сделал то, что вы сказали, и это работает, спасибо, и результаты, которые ребята показали ниже, работают.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Ты мутируешь 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);
}
Трудно сказать, поскольку вы, похоже, используете SyncFusion, но если
#UnitTypeID/#NumOfUnitsкаждый раз соответствует разным элементам, то у вас будут элементы с повторяющимися идентификаторами, что является недопустимой разметкой и приведет к путанице jQuery (в результате чего один и тот же элемент будет каждый раз целенаправленно).