symbyozis
@symbyozis
Никто

Перебор массива?

Есть такой массив, с ценами:

const array = [
                        {
                            ratePlanCategory: 'Member',
                            compareToRate: 'PBBA',
                            member_price: 100
                        },
                        {
                            ratePlanCategory: 'NoMember',
                            ratePlanCode: 'PBBA',
                            public_price: 200
                        }
                        {
                            ratePlanCategory: 'Member',
                            compareToRate: 'PRBA',
                            member_price: 100
                        },
                    ];


Подскажите, пожалуйста как мне сделать так чтобы, если у объекта с полем ratePlanCategory: 'Member', совпадает поле compareToRate с ratePlanCode объекта 'ratePlanCategory: 'NoMember', то взять из этого объекта поле 'public_price: 200' и добавить его в объект с полем ratePlanCategory: 'Member', а потом удалить это поле?
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ответы на вопрос 2
Пройдите по массиву в первый раз и заполните новый вспомогательный объект, в котором ключами будут значения compareToRate элементов с ratePlanCategory: 'Member', а значениями — их порядковые номера в исходном массиве.

Пройдите по массиву во второй раз: для каждого элемента с ratePlanCategory: 'NoMember' считывайте значение ratePlanCode, ищите значение в заполненном ранее объекте по этому ключу и так получите номер элемента массива с таким же значением ratePlanCode и ratePlanCategory: 'Member'.

Останется только добавить в найденный элемент значение public_price из очередной итерации прохождения массива и удалить данное свойство из этой итерации.
Ответ написан
Комментировать
@Karpion
А что делать, если таких совпадений несколько?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы