JSFiddle - React, Tailwind, and code Playground

by dpnminh

JavaScript

var arrT = [1,1,1,1,2,2,4,4,4,4,5,5,5,7,7,7];

function findDuplicateIndex(start, end, arr, map){	
var skipFirst = false;
debugger;
	if (arr[start] !== arr[end]){
  		var startMap = map[arr[start]],
      		endMap = map[arr[end]];
      
  		startMap.to = start;
      !endMap ? endMap = {
      	from: end
      }: endMap.from = end;
      
      return;
  }
  else{
  		skipFirst = true;
  }
	
  var mid = Math.floor((start + end)/2);
  
  if (!skipFirst && start !== mid){
		  findDuplicateIndex(start, mid, arr, map);  
  }
  
  if ((mid + 1) !== end){
  findDuplicateIndex(mid + 1, end, arr, map);
  }
}

var mapped = {};
mapped["1"] = {
from: 0
};

findDuplicateIndex(0, arrT.length - 1, arrT, mapped);

console.log(mapped);