Код: Выделить всё
let views = [
{
name: "A View",
active: true,
},
{
name: "B View",
active: false,
},
{
name: "C View",
active: false,
}
];
Код: Выделить всё
{
name: "A View",
active: true,
}
Код: Выделить всё
[
{
name: "A View",
active: true,
},
{
name: "B View",
active: false,
},
{
name: "C View",
active: false,
},
{
name: "A View 2",
active: true,
}
]
И
Код: Выделить всё
[
{
name: "A View",
active: true,
},
{
name: "B View",
active: false,
},
{
name: "C View",
active: false,
},
{
name: "A View 2",
active: true,
},
{
name: "A View 3",
active: true,
}
];
Я затем удаляю «A View 2»? Я хочу, чтобы суффикс «2» был доступен добавить для нового «Вид», если я его добавлю. Таким образом, следующим элементом «Вид» будет «Вид 2», а не «Вид 4».
Это мое текущее решение
Код: Выделить всё
const addItem = (item) => {
views = [...views, item];
let names = {};
views.forEach((obj) => {
if (names[obj.name]) {
obj.name += " " + ++names[obj.name];
} else {
names[obj.name] = 1;
}
});
console.log("views", views);
};
Если я вызываю функцию 3 раза, передавая один и тот же объект, как, например,
Код: Выделить всё
addItem({
name: "A View",
active: true,
});

Вот рабочий пример — https://codesandbox.io/p/sandbox/8dhpl3
Подробнее здесь: https://stackoverflow.com/questions/793 ... javascript
Мобильная версия