Как передать массив значений для фильтрации с помощью метода pickBy - PullRequest
0 голосов
/ 01 апреля 2019

Я передаю массив в качестве параметра в функции pickBy

    return fetch(API_BASE + url + (params ? '?' + stringify(pickBy(params, v=>v===false||!!v)) : ''), {
    method: 'GET',
    headers,
    credentials: 'include'
  }).then(resp=>{
    authGuard(resp);
    return resp;
  });

и мой объект params

 currencyId: [12,44]
    dueDateEnd: null
    dueDateStart: null
    exceptionTypeIds: (2) ["Contract updates/correction WIP", "Closed Contract"]

Теперь, когда я передаю только один exceptionTypeIds, тогда он работает, но когда я передаю два значения, выдается ошибка, что exceptionTypeIds должен быть строкой, CurrencyId должен быть числом. Я хочу достичь этого, когда бы я ни передавал любое значение, оно будет работать.

1 Ответ

0 голосов
/ 01 апреля 2019

Странно. Я только что попробовал с lodash 4.14.120 и поведение, как и ожидалось:

const params = {
    currencyId: [12, 44],
    dueDateEnd: null,
    dueDateStart: null,
    exceptionTypeIds: ["Contract updates/correction WIP", "Closed contract"]
}

console.log(_.pickBy(params, v => v === false || !!v))

возвращает

{
    currencyId: [ 12, 44 ],
    exceptionTypeIds: [ 'Contract updates/correction WIP', 'Closed contract' ]
}

Даже только с одним exceptionTypeId или пустым массивом: без ошибок.

Я попробовал это в REPL Node.js. Может быть, что-то есть в браузере.

...