var arr = [4,2,[1,2,3],[5,[7,9,[9,9]]]] var recurise = true var result = [] function array_unique(res,arr,recurise = true){ for(var i = 0; i < arr.length; i++){ if(arr[i].length > 0) { if(recurise) array_unique(res,arr[i],recurise) } else { if(res.indexOf(arr[i]) === -1){ res.push(arr[i]) } } } } array_unique(result, arr) console.log(result)