- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# JavaScript Program to Find a triplet that sum to a given value

We are going to write a JavaScript program to find a triplet that sum up to a given value. This program will make use of nested loops to iterate over the input array and check for the existence of a triplet with a sum equal to the given value. Our program will continuously search for a triplet until it is found or all possible combinations have been exhausted. This program will make it possible for us to find a triplet that sum up to a given value in an efficient and straightforward manner.

## Approach

The approach to find a triplet that sums up to a given value can be achieved using the following steps −

Sort the input array in ascending order.

Loop through the array and fix one element

Initialize two pointers, one pointing to the next element of the fixed element, and the other pointing to the end of the array.

Check if the sum of the three elements is equal to the given value.

If the sum is less than the given value, increment the left pointer.

If the sum is greater than the given value, decrement the right pointer. Repeat the process until either a triplet is found or the pointers cross each other.

## Example

Given an array of integers, we want to find a triplet that sum to a given value. Here's a JavaScript program that solves this problem −

function findTriplet(arr, sum) { // First, we sort the array in ascending order arr.sort((a, b) => a - b); // Next, we iterate through the array with the outer loop for (let i = 0; i < arr.length - 2; i++) { // We start the inner loop from i + 1 to avoid using the same number twice let left = i + 1; let right = arr.length - 1; // The inner loop moves the left and right pointers towards each other while (left < right) { // If the sum of the current triplet is equal to the given sum, we have found our solution if (arr[i] + arr[left] + arr[right] === sum) { return [arr[i], arr[left], arr[right]]; } // If the sum of the current triplet is less than the given sum, we need to increase the sum // So, we move the left pointer to the right else if (arr[i] + arr[left] + arr[right] < sum) { left++; } // If the sum of the current triplet is greater than the given sum, we need to decrease the sum // So, we move the right pointer to the left else { right--; } } } // If no triplet is found, we return null return null; } // Example usage let arr = [1, 4, 45, 6, 10, 8]; let sum = 22; let triplet = findTriplet(arr, sum); console.log(triplet);

## Explanation

The function

**findTriplet**takes in an array**arr**and a sum as arguments.First, the array is sorted in ascending order using the

**sort**method.Next, we iterate through the array with the outer loop, using

**for**loop with the variable i starting from 0 to**arr.length - 2.**Within the outer loop, we start the inner loop from

**i + 1**to avoid using the same number twice. Two pointers**left**and**right**are initialized with**i + 1**and**arr.length - 1,**respectively.In the inner loop, we use a while loop to keep moving the

**left**and**right**pointers towards each other until**left**is less than**right.**Within the

**while**loop, we check the current sum of the triplet**arr[i] + arr[left] + arr[right].**If it's equal to the given

**sum,**we have found our solution and we return the triplet**[arr[i], arr[left], arr[right]].**If it's less than the given

**sum,**we need to increase the sum, so we move the**left**pointer to the right by incrementing**left.**If it's greater than the given

**sum,**we need to decrease the sum