Как добавить в массив уникальную дату из другого массива?
Есть массив с датами, хочу перенести из обычного массива в объект массив. Но нужно что бы в объект записывались только уникальные даты без дубляжа. Запутался совсем, не соображу что нужно сделать.
let namesId = ["Вторник 17.08", "Среда 11.07", "Понедельник 17.08", "Суббота 23.09", "Среда 11.07", "Четверг 01.12", "Пятница 11.07", "Вторник 17.08", "Четверг 01.12", ];
function listKeyboard(keyBoard) {
keyBoard = {
"inline_keyboard": []
};
for (let i = 0; i < namesId.length; i++) {
keyBoard.inline_keyboard[i] = [{
"text": namesId[i],
'callback_data': i
}];
}
return keyBoard;
}
console.log(listKeyboard());
Ответы (1 шт):
Автор решения: renich
→ Ссылка
Получить уникальные можно через new Set().
const namesId = ["Вторник 17.08", "Среда 11.07", "Понедельник 17.08", "Суббота 23.09", "Среда 11.07", "Четверг 01.12", "Пятница 11.07", "Вторник 17.08", "Четверг 01.12", ];
const keyBoard = {
inline_keyboard: [...new Set(namesId)].map((item, index) => ({
text: item,
callback_data: index
}))
};
console.log(keyBoard);
Через for в функции.
const namesId = ["Вторник 17.08", "Среда 11.07", "Понедельник 17.08", "Суббота 23.09", "Среда 11.07", "Четверг 01.12", "Пятница 11.07", "Вторник 17.08", "Четверг 01.12", ];
const uniqueNamesId = [...new Set(namesId)];
function listKeyboard(keyBoard) {
keyBoard = {
"inline_keyboard": []
};
for (let index = 0; index < uniqueNamesId.length; index++) {
keyBoard.inline_keyboard.push({
text: uniqueNamesId[index],
callback_data: index
});
}
return keyBoard;
};
console.log(listKeyboard());