【问题标题】:Using lodash filter I want to replace null with zero使用 lodash 过滤器我想用零替换 null
【发布时间】:2021-05-09 11:40:22
【问题描述】:
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]

【问题讨论】:

    标签: javascript arrays json sorting lodash


    【解决方案1】:

    如果不是特别关注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'));

    【讨论】:

    • 感谢您的试用。但是将 null 映射到零很好,我采用上述方法的原因是我必须采用动态名称并将值设置为该特定数组
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-20
      • 2021-09-30
      • 2021-07-14
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      相关资源
      最近更新 更多