
- Javascript Basics Tutorial
- Javascript - Home
- Javascript - Overview
- Javascript - Syntax
- Javascript - Enabling
- Javascript - Placement
- Javascript - Variables
- Javascript - Operators
- Javascript - If...Else
- Javascript - Switch Case
- Javascript - While Loop
- Javascript - For Loop
- Javascript - For...in
- Javascript - Loop Control
- Javascript - Functions
- Javascript - Events
- Javascript - Cookies
- Javascript - Page Redirect
- Javascript - Dialog Boxes
- Javascript - Void Keyword
- Javascript - Page Printing
- JavaScript Objects
- Javascript - Objects
- Javascript - Number
- Javascript - Boolean
- Javascript - Strings
- Javascript - Arrays
- Javascript - Date
- Javascript - Math
- Javascript - RegExp
- Javascript - HTML DOM
- JavaScript Advanced
- Javascript - Error Handling
- Javascript - Validations
- Javascript - Animation
- Javascript - Multimedia
- Javascript - Debugging
- Javascript - Image Map
- Javascript - Browsers
- JavaScript Useful Resources
- Javascript - Questions And Answers
- Javascript - Quick Guide
- Javascript - Functions
- Javascript - Resources
Forming and matching strings of an array based on a random string in JavaScript
Suppose, we have an array of strings that contains some names like this −
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
And a random string of characters like this −
const str = 'lsoaakjm';
We are required to write a JavaScript function that takes in such an array and string as the two argument.
Then the function, for each element of the array should check whether that particular element can be formed completely from the string supplied as second argument.
If this condition satisfies for any element of the array, we should return that element otherwise we should return an empty string.
Example
Following is the code −
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai']; const str = 'lsoaakjm'; const initialise = (str = '', map) => { for(let i = 0; i < str.length; i++){ map[str[i]] = (map[str[i]] || 0) + 1; }; }; const deleteAll = map => { for(key in map){ delete map[key]; }; }; const checkForFormation = (arr = [], str = '') => { const map = {}; for(let i = 0; i < arr.length; i++){ const el = arr[i].toLowerCase(); initialise(str, map); let j; for(j = 0; j < el.length; j++){ const char = el[j]; if(!map[char]){ break; }else{ map[char]--; } }; if(j === el.length){ return arr[i]; }; deleteAll(map); } return ''; }; console.log(checkForFormation(arr, str));
Output
Following is the console output −
Kamal
- Related Articles
- Shuffling string based on an array in JavaScript
- Shifting string letters based on an array in JavaScript
- JavaScript filter an array of strings, matching case insensitive substring?
- Constructing a string based on character matrix and number array in JavaScript
- Encrypting a string based on an algorithm in JavaScript
- Modify an array based on another array JavaScript
- Encrypting a string based on an algorithm using JavaScript
- Filter an object based on an array JavaScript
- Order an array of words based on another array of words JavaScript
- Creating an array of objects based on another array of objects JavaScript
- Splitting strings based on multiple separators - JavaScript
- Grouping an Array and Counting items creating new array based on Groups in JavaScript
- Returning acronym based on a string in JavaScript
- Check if the string is a combination of strings in an array using JavaScript
- Change string based on a condition - JavaScript

Advertisements