Используйте _.filter()
и проверьте с помощью Array.some()
(или lodash _.some()
), содержит ли массив свойства account_value
, который не равен nil
.Затем сведите результаты в один массив.
const activeCard = {"cardValue1":[{"account_value":"4422444443333004","country":"US","month":"01","year":"2029","confirmation":[null]}],"cardValue2":[{}],"cardValue3":[{}]}
const result = _.flatten(_.filter(activeCard, arr =>
arr.some(o => !_.isNil(o.account_value))
))
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
С помощью lodash / fp вы можете создать функцию, которая фильтрует, повторяя с _.some()
, получая account_value
и проверяя, не является ли nil
,Затем сводит результаты в один массив.
const { filter, some, flow, get, negate, isNil, flatten } = _
const fn = flow(
filter(some(flow(
get('account_value'),
negate(isNil)
))),
flatten
)
const activeCard = {"cardValue1":[{"account_value":"4422444443333004","country":"US","month":"01","year":"2029","confirmation":[null]}],"cardValue2":[{}],"cardValue3":[{}]}
const result = fn(activeCard)
console.log(result)
<script src='https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)'></script>