как переписать на функциональный стиль?

162
31 августа 2018, 02:10

Как сделать в функиональном стиле. Функция возвращает true, если найдены limit совпадений. Ищет дубликаты, которые повторяются 2+ раза

export default function(array, currentdata, limit = 2) {
    const { ac, sub} = currentData;
    let counter = 0;
    for (let j = 0; j < array.length; j++) {
        if (counter >= limit) {
            return true;
        }
        if (array[j].type1 === ac && array[j].type2 === sub) {
            counter++;
        }
    }
    return false;
}
Answer 1

Деструктуризацию параметра можно делать в самом объявлении:

const { ac, sub} = currentData; -> function(array, { ac, sub}, limit = 2) {

Для проверки удовлетворения элементов условию можно воспользоваться функцией .some

При выполнении условия можно менять сам параметр limit, и останавливать поиск при достижении им значения 0.

В итоге код функции может выглядеть так:

export default function(array, {ac, sub}, limit = 2) {
    return array.some(el=>(limit-=el.type1 === ac && el.type2 === sub)<1);
}
READ ALSO
Как сделать, чтобы при сборке проекта Vue.js (webpack-simple) url изображений оставались на своих местах?

Как сделать, чтобы при сборке проекта Vue.js (webpack-simple) url изображений оставались на своих местах?

Как сделать, чтобы при сборке проекта Vuejs (webpack-simple) url изображений оставались на своих местах? А то при сборке у меня образовались непонятные...

158
Отменить переключение клавишами по tabs?

Отменить переключение клавишами по tabs?

Не могу понять как отключить переключение между табами клавиатурой? Свойство data-wrap-on-keys="false" почему-то не срабатываетМожет кто то сталкивался?

400
Отправка файлов через FormData

Отправка файлов через FormData

Не получается отправить файл на сервер, используя ajax, объект FormDataФункция ajax в javascript вызывает ошибку 404

211
Пересчет координат вершин объекта

Пересчет координат вершин объекта

Ориентируясь на пример кода из ответа Немного поэкспериментировал с кодом, я рассеял точки по экрану

147