React – How to exclude specific array value in includes function

All we need is an easy explanation of the problem, so here it is.

I have an array

export const INVALID_CODES = [
  'code_1659',
  'code_5430',
  'code_7482',
  'not_valid',
];

And to render message I used includes function

const renderMessage = (): boolean => {
  return !INVALID_CODES.includes(apiResponse.invalidCode);
};

My problem is I want to exclude ‘code_5430’ in renderMessage to be used in other conditions

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

My way to overcome this problem is to put the code_5430 as the first element ([0]) in the array, and check the include from the second element.

Like:

export const INVALID_CODES = [
      'code_5430',
      'code_1659',
      'code_7482',
      'not_valid',
 ];

const renderMessage = (): boolean => {
    return !INVALID_CODES.includes(apiResponse.invalidCode, 1);
};

Method 2

Whenever you think of exclude, you should almost always use Array.prototype.filter

const renderMessage = (): boolean => {
    return !INVALID_CODES
      .filter(x => x !== "code_5430")
      .includes(apiResponse.invalidCode);
};

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply