Home > Net >  Remove objects from array where an attribute is equal to specific string
Remove objects from array where an attribute is equal to specific string

Time:03-30

I am using an array.filter() function to remove all the objects where one of their attribute is equal to any of the string in a given array. The objects in the array are crypto trades and I need to filter out the trades with the trade pairs that I do not want. How would I achieve this using the filter function? For now, I tried this which did not work evidently:

filteredPairs = filteredPairs.filter(
      (pair) =>
        !pair.symbol.includes(
          "USDTBUSD",
          "USDTUSDC",
          "USDTUST",
          "USDTUSDP",
          "USDTDAI",
          "BUSDUSDT",
          "BUSDUSDC",
          "BUSDUST",
          "BUSDUSDP",
          "BUSDDAI",
          "USDCUSDT",
          "USDCBUSD",
          "USDCUST",
          "USDCUSDP",
          "USDCDAI",
          "USTUSDT",
          "USTBUSD",
          "USTUSDC",
          "USTUSDP",
          "USTDAI",
          "USDPUSDT",
          "USDPBUSD",
          "USDPUSDC",
          "USDPUST",
          "USDPDAI",
          "DAIUSDT",
          "DAIBUSD",
          "DAIUSDC",
          "DAIUSDP",
          "DATUST"
        )
    );

This is not filtering out these pairs. Any insight would be helpful. Thank you.

CodePudding user response:

This can be done in a single line.

// testing object
const filteredPairs = [
    {
        symbol: 'USDTBUSD',
    },
    {
        symbol: 'abc',
    },
    {
        symbol: 'BUSDUSDT',
    },
    {
        symbol: '321',
    },
];

// items we don't want
const blacklist = [
    'USDTBUSD',
    'USDTUSDC',
    'USDTUST',
    'USDTUSDP',
    'USDTDAI',
    'BUSDUSDT',
    'BUSDUSDC',
    'BUSDUST',
    'BUSDUSDP',
    'BUSDDAI',
    'USDCUSDT',
    'USDCBUSD',
    'USDCUST',
    'USDCUSDP',
    'USDCDAI',
    'USTUSDT',
    'USTBUSD',
    'USTUSDC',
    'USTUSDP',
    'USTDAI',
    'USDPUSDT',
    'USDPBUSD',
    'USDPUSDC',
    'USDPUST',
    'USDPDAI',
    'DAIUSDT',
    'DAIBUSD',
    'DAIUSDC',
    'DAIUSDP',
    'DATUST',
];

// filter
const newFilteredPairs = filteredPairs.filter(({ symbol }) => !blacklist.some((item) => symbol.includes(item)));

console.log(newFilteredPairs);

  • Related