Вставьте элемент в каждый индекс в массиве

У меня есть массив, я хочу добавить еще одну пару значений ключа в каждый индекс.

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 или для каждого цикла будет в порядке

Ждать. Что именно вы пытаетесь здесь сделать?

briosheje 08.04.2019 14:28

Первый аргумент apply — это контекст, вы также можете получить к нему доступ как к статическому свойству. Это не имеет смысла

Cristian Traìna 08.04.2019 14:29
ajaxResult[i].selectedTripLeader = $scope.TripLeaderData[0].Id?
adiga 08.04.2019 14:29

Похоже, вы пытаетесь добавить новое свойство к каждому объекту в своем массиве.

James 08.04.2019 14:30

Возможный дубликат Добавить свойство в массив объектов

adiga 08.04.2019 14:31

Код из последнего решения, которое я пробовал, мне нужна пара ключ-значение для каждого элемента массива ajaxResult. Но я не могу нажать прямо в ajaxResult[item]. Отображает ошибку «Push не является функцией»

Bhavin patel 08.04.2019 14:32

ajaxResult[i].selectedTripLeader = $scope.TripLeaderData[0].Id Я использую это для отображения выпадающего списка для каждой строки. т.е. назначить андрулярную модель

Bhavin patel 08.04.2019 14:34

Пожалуйста, добавьте, какой массив вы получаете из API и ваш $scope.TripLeaderData в вопросе

Hrishi 08.04.2019 15:49
Поведение ключевого слова "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
8
239
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Если вы хотите добавить свойство к своему объекту, вы можете использовать спред оператор для объединения текущего объекта с вашим новым свойством:

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

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