简体   繁体   中英

How to use lodash to filter array and objects

Is there a better way for me to code this. The current code works, but I am looking for better way to code. Code must use lodash. I figure they may be a way to filter where I don't have to create 2 filters then join it together

const overwriteExisting = () => {
    // get data that does not have midiChannl = 5
    const filtered1 = filter(data, function (o) {
      return o.midiChannl !== 5;
    });

    // filter out everything that does not have same midiValue hello2
    const filtered2 = filter(dataWithoutCurrentUUID, function (o) {
      return (
       
        o.midiValue !== 'hello2';
      );
    });

    const joinAll = concat(filtered1, filtered2);
    console.log(joinAll)
}

{
    midiType: 1,
    midiValue: "hello",
    midiChannl: 5
},
{
    midiType: 10,
    midiValue: "hello2",
    midiChannl: 4
},
{
    midiType: 100,
    midiValue: "hello2",
    midiChannl: 4
},
{
    midiType: 1000,
    midiValue: "hello4",
    midiChannl: 4
}

Would this work? It is not clear if the filters are applied to the same data array.

const overwriteExisting = () => {
    // get data that does not have midiChannl = 5 and does not have same midiValue hello2
    const filtered = filter(data, o =>
      o.midiChannl !== 5 && o.midiValue !== 'hello2'
    );

    console.log(filtered)
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM