Array Difference Based on Function

JavaScriptJavaScriptBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

In this lab, we will explore how to filter out values from an array based on a given comparator function. We will use the Array.prototype.filter() and Array.prototype.findIndex() methods to achieve this. Additionally, we will learn how to use the default strict equality comparator if no comparator function is provided.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") subgraph Lab Skills javascript/variables -.-> lab-28323{{"`Array Difference Based on Function`"}} javascript/data_types -.-> lab-28323{{"`Array Difference Based on Function`"}} javascript/arith_ops -.-> lab-28323{{"`Array Difference Based on Function`"}} javascript/comp_ops -.-> lab-28323{{"`Array Difference Based on Function`"}} javascript/higher_funcs -.-> lab-28323{{"`Array Difference Based on Function`"}} end

How to Filter Out Values from an Array Based on a Function

To filter out all values from an array based on a given comparator function, follow these steps:

  1. Open the Terminal/SSH and type node to start practicing coding.
  2. Use Array.prototype.filter() and Array.prototype.findIndex() to find the appropriate values.
  3. Omit the last argument, comp, to use a default strict equality comparator.
  4. Use the following code:
const differenceWith = (arr, val, comp = (a, b) => a === b) =>
  arr.filter((a) => val.findIndex((b) => comp(a, b)) === -1);
  1. Test your function with the following examples:
differenceWith(
  [1, 1.2, 1.5, 3, 0],
  [1.9, 3, 0],
  (a, b) => Math.round(a) === Math.round(b)
); // Expected output: [1, 1.2]

differenceWith([1, 1.2, 1.3], [1, 1.3, 1.5]); // Expected output: [1.2]

Summary

Congratulations! You have completed the Array Difference Based on Function lab. You can practice more labs in LabEx to improve your skills.

Other JavaScript Tutorials you may like