重构基于键/值对的值进行过滤的代码

kno*_*t22 0 javascript

我有以下代码,它按预期工作 - 它正确过滤掉值为 null、false 的键/值对,并返回一个带有其他键/值对的对象。但是,它相当冗长,我想知道是否有办法简化它。

const settings = {
    distance: null,
    length: 23,
    weight: null,
    isActive: false,
    isRound: true
}

const data = {};
Object.entries(settings)
.filter(([, value]) => value !== null)
.filter(([, value]) => value !== false)
.forEach(([key, value]) => (data[key] = value));
      
console.log(data);
Run Code Online (Sandbox Code Playgroud)

Ana*_*ica 6

您可以删除所有虚假值并仅迭代一次:

    const settings = {
        distance: null,
        length: 23,
        weight: null,
        isActive: false,
        isRound: true
    }

    const data = {};
    Object.entries(settings)
      .forEach(([key, value]) => {
        if(!!value) {
          data[key]= value;       
        }
     })
          
    console.log(data);
Run Code Online (Sandbox Code Playgroud)