Почему не работает фильтр массива объектов на js?

"use strict"

const data = [{

    cardNum: '1234567890123456',

    cardStatus: '+',

    validTill: '11/20',

    product: 'VISA'

},

    {

        cardNum: '2234567890123456',

        cardStatus: 'H',

        validTill: '12/20',

        product: 'VISA GOLD'

    }, {

        cardNum: '3234567890123456',

        cardStatus: 'X',

        validTill: '12/21',

        product: 'MC STANDARD'

    }, {

        cardNum: '4234567890123456',

        cardStatus: 'X',

        validTill: '12/21',

        product: 'MAESTRO'

    }
]

const filterData = data.filter(function (e) {
    return e.cardNum.search(/^'4234'/ || /^'1234'/);
});
const filterData2 = filterData.filter(function (e) {
    return e.cardStatus == 'X' || '+';
});


console.log('filterData2', filterData2);

Нужно вывести не элементы, номера карт которых начинаются с '4234' или '1234' и имеют кардСтатус X или +

Выводит неверно
{
cardNum: '3234567890123456',
cardStatus: 'X',
validTill: '12/21',
product: 'MC STANDARD'
},
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
const filterData = data.filter(el => {
  return (el.cardNum.startsWith('1234') || el.cardNum.startsWith('4234'))
  && (el.cardStatus === 'X' || el.cardStatus === '+');
});

console.log(filterData);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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