使用 lodash 过滤器我想用零替换 null

时间:2021-02-05 05:33:18

标签: javascript arrays json sorting lodash

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]

2 个答案:

答案 0 :(得分:0)

如果对 loadash 不挑剔,这里使用的是 map||??

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


const get = (arr, key) => arr.map((item) => (item[key] || 0));

console.log(get(a, 'qwe'));

答案 1 :(得分:0)

只需映射并使用 || 将 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>

相关问题