У меня есть массив, я хочу добавить еще одну пару значений ключа в каждый индекс.
var ajaxResult = ajaxGet("URL");
if (ajaxResult.length > 0) {
for (var i = 0; i < ajaxResult.length; i++) {
debugger
ajaxResult[i].prototype.push.apply({ "selectedTripLeader": $scope.TripLeaderData[0].Id });
debugger
}
}
Я пытаюсь добиться * selectedTripLeader для каждого элемента массива, представленного в ajaxResult.* например array[0].push({ "selectedTripLeader": $scope.TripLeaderData[0].Id }) array[1].push({ "selectedTripLeader": $scope.TripLeaderData[0].Id })
Я пытался использовать обычный push и прототип.push, но он не работает. Решение с циклом for или для каждого цикла будет в порядке
Первый аргумент apply
— это контекст, вы также можете получить к нему доступ как к статическому свойству. Это не имеет смысла
ajaxResult[i].selectedTripLeader = $scope.TripLeaderData[0].Id
?
Похоже, вы пытаетесь добавить новое свойство к каждому объекту в своем массиве.
Возможный дубликат Добавить свойство в массив объектов
Код из последнего решения, которое я пробовал, мне нужна пара ключ-значение для каждого элемента массива ajaxResult. Но я не могу нажать прямо в ajaxResult[item]. Отображает ошибку «Push не является функцией»
ajaxResult[i].selectedTripLeader = $scope.TripLeaderData[0].Id Я использую это для отображения выпадающего списка для каждой строки. т.е. назначить андрулярную модель
Пожалуйста, добавьте, какой массив вы получаете из API и ваш $scope.TripLeaderData в вопросе
Если вы хотите добавить свойство к своему объекту, вы можете использовать спред оператор для объединения текущего объекта с вашим новым свойством:
var ajaxResult = ajaxGet("URL");
if (ajaxResult.length > 0) {
for (var i = 0; i < ajaxResult.length; i++) {
ajaxResult[i] = {
...ajaxResult[i],
selectedTripLeader: $scope.TripLeaderData[0].Id
};
}
}
По индексу i в ajaxResult это объект (ajaxResult[i]). Вы не можете использовать функцию push для объекта, вы можете использовать ее для массива. Чтобы добавить новую пару ключ-значение в существующий объект, вы можете сделать следующее:
вар а = {}; a.name='Джо'; ИЛИ [имя] = 'Джо';
Оба способа добавляют новую пару ключ-значение в Object.
Итак, в вашем сценарии это должно быть, как показано ниже.
ajaxResult[i].selectedTripLeader= $scope.TripLeaderData[0].Id
OR
ajaxResult[i]['selectedTripLeader'] = $scope.TripLeaderData[0].Id
Ждать. Что именно вы пытаетесь здесь сделать?