0

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.

1 Answer 1

1

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);

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.