首页 > 解决方案 > 使用 lodash 过滤器我想用零替换 null

问题描述

let a = [{'abc': 1, 'qwe':2},{'abc': 2, 'qwe':2},{'abc': 5, 'qwe':null}, {'abc': 4, 'qwe':null}],

let required =  _.chain(a)
                _.groupBy(qwe)
                _.map((value, key) => ({
                 name: key,
                 data: _.map(_.filter(value, item => {
                 return item.qwe;
})
                  'qwe'
                 )
               })).value()
              })

输出是:

qwe:[2,2,5]

预期输出为:

qwe:[2,2,5,0, 0]

标签: javascriptarraysjsonsortinglodash

解决方案


只需映射并使用||将 null 设置为您想要的值(此处为 0)

let a = [
  { abc: 1, qwe: 2 },
  { abc: 2, qwe: 2 },
  { abc: 5, qwe: null },
  { abc: 4, qwe: null },
];

let res = _.chain(a)
  .map("qwe")
  .map((v) => v || 0)
  .value();

console.log(res);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>


推荐阅读