Эффектный join массива объектов с фильтрацией по условию в строку

TypeScript

Для передачи параметров через Get нужно было собрать строку из выбранных значений Checkbox. В проекте использовал Checkbox из Fluent UI, но подход аналогичный для другого компонента. Собственно, здесь даже не про React, а про TypeScript.

Задача. Есть массив объектов. Надо сформировать строку из элементов, которые были выбраны чекбоксами. Описание контрола и интерфейса доступно на странице https://developer.microsoft.com/en-us/fluentui#/controls/web/checkbox

В результате 2 итераций функцию сократил до 1 строки

const MakeCategoryStr = (newCats:ICheckboxProps[]):string => {
return newCats.filter(x => x.checked).map(x=>x.title).join(',')
    }

Полный пример кода и результат:

export interface ICheckboxProps {
    title: string,
    checked: boolean
}
….
const items:ICheckboxProps[] = [
        {checked: true, title: 'Films'},
        {checked: false, title: 'Music'},
        {checked: true, title: 'Theater'},
        {checked: true, title: 'Sport'},
    ]

    const MakeCategoryStr = (newCats:ICheckboxProps[]):string => {
        return newCats.filter(x => x.checked).map(x=>x.title).join(',')
            }
    console.log(MakeCategoryStr(items))

Результат: Films,Theater,Sport


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment







MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика