
- 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
Finding the common streak in two arrays in JavaScript
We are required to write a JavaScript function that takes in two arrays of literals, let’s call them arr1 and arr2.
The function should find the longest common streak of literals in the arrays. The function should finally return an array of those literals.
For example −
If the input arrays are −
const arr1 = ['a', 'b', 'c', 'd', 'e']; const arr2 = ['k', 'j', 'b', 'c', 'd', 'w'];
Then the output array should be −
const output = ['b', 'c', 'd'];
Example
Following is the code −
const arr1 = ['a', 'b', 'c', 'd', 'e']; const arr2 = ['k', 'j', 'b', 'c', 'd', 'w']; const longestCommonSubsequence = (arr1 = [], arr2 = []) => { let str1 = arr1.join(''); let str2 = arr2.join(''); const arr = Array(str2.length + 1).fill(null).map(() => Array(str1.length + 1).fill(null)); for (let j = 0; j <= str1.length; j += 1) { arr[0][j] = 0; } for (let i = 0; i <= str2.length; i += 1) { arr[i][0] = 0; } for (let i = 1; i <= str2.length; i += 1) { for (let j = 1; j <= str1.length; j += 1) { if (str1[j - 1] === str2[i - 1]) { arr[i][j] = arr[i - 1][j - 1] + 1; } else { arr[i][j] = Math.max( arr[i - 1][j], arr[i][j - 1], ); } } } if (!arr[str2.length][str1.length]) { return ['']; } const res = []; let j = str1.length; let i = str2.length; while (j > 0 || i > 0) { if (str1[j - 1] === str2[i - 1]) { res.unshift(str1[j - 1]); j -= 1; i -= 1; } else if (arr[i][j] === arr[i][j - 1]) { j -= 1; } else { i -= 1; } } return res; }; console.log(longestCommonSubsequence(arr1, arr2));
Output
Following is the output on console −
['b', 'c', 'd']
- Related Articles
- Finding the continuity of two arrays in JavaScript
- Finding deviations in two Number arrays in JavaScript
- Finding Common Item Between Arbitrary Number of Arrays in JavaScript
- Finding maximum number from two arrays in JavaScript
- Finding the difference between two arrays - JavaScript
- Finding the sum of all common elements within arrays using JavaScript
- Finding the missing number between two arrays of literals in JavaScript
- Finding the longest common consecutive substring between two strings in JavaScript
- Finding the inclination of arrays in JavaScript
- JavaScript Program for find common elements in two sorted arrays
- How to find the common elements between two or more arrays in JavaScript?
- Finding reversed index of elements in arrays - JavaScript
- Finding intersection of arrays of intervals in JavaScript
- Finding maximum length of common subarray in JavaScript
- Deviations in two JavaScript arrays in JavaScript

Advertisements