У меня есть массив объектов, которые я извлекаю через запрос Axios под названием «уникальные цвета». Это выглядит так:
mycolors
color: [GREEN, RED, BLUE, YELLOW, ORANGE,ORANGE,GREEN,]
color: [GREEN, RED, BLUE, YELLOW, ORANGE,ORANGE,GREEN,]
color: [GREEN, RED, BLUE ]
color: [YELLOW, ORANGE]
color: [GREEN, GREEN,GREEN,RED]
color: [ORANGE,GREEN,ORANGE,GREEN,RED]`
Я хотел бы удалить все цвета, кроме «КРАСНЫЙ» и «ЗЕЛЕНЫЙ» для каждого объекта
Я хотел бы заменить «КРАСНЫЙ» на «Багровый».
Я хотел бы заменить «ЗЕЛЕНЫЙ» на «Шалфей».
`methods:
....
const uniquecolorscationwithduplicates = uniquecolors
.toString()
.replace("RED", "Crimson")
.replace("GREEN", "Sage")
.replace("YELLOW,", "")
.split("|");``
Это на самом деле сохраняет все цвета, но добавляет малиновый и шалфейный. Таким образом, он отображает «ЗЕЛЕНЫЙ, Шалфей, КРАСНЫЙ, Малиновый, СИНИЙ, ЖЕЛТЫЙ, ОРАНЖЕВЫЙ» вместо замены.
С чего бы это?
Чтобы удалить, я заменял пустой строкой. Я знаю, что это плохой способ кодирования, но я не уверен, как еще это сделать.
В идеале я хотел бы изменить все экземпляры цветов при отображении страницы, поэтому любые указатели будут полезны.
заранее спасибо



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


Вы можете просто добиться этого, используя методы JavaScript Array.map() , Array.filter() , Array.join() и String.replaceAll().
Живая демонстрация:
const arr = [{
color: ['GREEN', 'RED', 'BLUE', 'YELLOW', 'ORANGE', 'ORANGE', 'GREEN']
},{
color: ['GREEN', 'RED', 'BLUE', 'YELLOW', 'ORANGE', 'ORANGE', 'GREEN']
},{
color: ['GREEN', 'RED', 'BLUE']
},{
color: ['YELLOW', 'ORANGE']
},{
color: ['GREEN', 'GREEN', 'GREEN', 'RED']
},{
color: ['ORANGE', 'GREEN', 'ORANGE', 'GREEN', 'RED']
}];
const res = arr.map(({ color }) => {
const filteredColor = color.filter(c => c === 'GREEN' || c === 'RED');
const obj = {
color: filteredColor.join().replaceAll('RED', 'Crimson').replaceAll('GREEN', 'Sage').split(',')
};
return obj;
});
console.info(res);попробуйте этот код, вы можете использовать карту и фильтр.
const mycolors = [
{color: ['GREEN', 'RED', 'BLUE', 'YELLOW', 'ORANGE', 'ORANGE', 'GREEN']},
{color: ['GREEN', 'RED', 'BLUE', 'YELLOW', 'ORANGE', 'ORANGE', 'GREEN']},
{color: ['GREEN', 'RED', 'BLUE']},
{color: ['YELLOW', 'ORANGE']},
{color: ['GREEN', 'GREEN', 'GREEN', 'RED']},
{color: ['ORANGE', 'GREEN', 'ORANGE', 'GREEN', 'RED']}
];
const colored = mycolors.map(({color}) => {
let filtered = color.filter(col => col === 'RED' || col === 'GREEN')
.map(el => {
return el === 'RED' ? 'Crimson' : 'Sage';
});
return {color: filtered};
});
console.info(colored)
Здравствуйте, пожалуйста, опишите ответ axios как json или что-то в этом роде, ответ, который вы описали, неоднозначен.