JavaScript: Find a pair of elements from an specified array whose sum equals a specific target number
JavaScript Array: Exercise-26 with Solution
Write a JavaScript program to find a pair of elements (indices of the two numbers) in a given array whose sum equals a specific target number.
Input: numbers= [10,20,10,40,50,60,70], target=50
Output: 2, 3
Visual Presentation:
Sample Solution:
JavaScript Code:
// Function to find two indices in the array 'nums' whose elements sum to the 'target_num'
function twoSum(nums, target_num) {
// Initialize an empty array 'map' to store the difference between 'target_num' and elements in 'nums'
var map = [];
// Initialize an empty array 'indexnum' to store the indices of the two numbers
var indexnum = [];
// Iterate through each element in the 'nums' array
for (var x = 0; x < nums.length; x++) {
// Check if the current element's complement exists in the 'map' array
if (map[nums[x]] != null) {
// If found, store the indices of the two numbers and break out of the loop
var index = map[nums[x]];
indexnum[0] = index;
indexnum[1] = x;
break;
} else {
// If not found, store the index of the current element's complement in the 'map' array
map[target_num - nums[x]] = x;
}
}
// Return the array containing the indices of the two numbers
return indexnum;
}
// Output the result of the twoSum function with a sample array and target number
console.log(twoSum([10,20,10,40,50,60,70], 50));
Output:
[2,3]
Flowchart:
ES6 Version:
// Function to find two indices in the array 'nums' whose elements sum to the 'target_num'
const twoSum = (nums, target_num) => {
// Initialize an empty array 'map' to store the difference between 'target_num' and elements in 'nums'
const map = [];
// Initialize an empty array 'indexnum' to store the indices of the two numbers
const indexnum = [];
// Iterate through each element in the 'nums' array
for (let x = 0; x < nums.length; x++) {
// Check if the current element's complement exists in the 'map' array
if (map[nums[x]] != null) {
// If found, store the indices of the two numbers and break out of the loop
const index = map[nums[x]];
indexnum[0] = index;
indexnum[1] = x;
break;
} else {
// If not found, store the index of the current element's complement in the 'map' array
map[target_num - nums[x]] = x;
}
}
// Return the array containing the indices of the two numbers
return indexnum;
};
// Output the result of the twoSum function with a sample array and target number
console.log(twoSum([10, 20, 10, 40, 50, 60, 70], 50));
Live Demo:
See the Pen JavaScript - Find a pair of elements from an specified array whose sum equals a specific target number - array-ex- 26 by w3resource (@w3resource) on CodePen.
Improve this sample solution and post your code through Disqus.
Previous: Write a JavaScript function to sort the following array of objects by title value.
Next: Write a JavaScript function to retrieve the value of a given property from all elements in an array.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/javascript-exercises/javascript-array-exercise-26.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics