Script Preparation code:
x
 
function anas(array, arraysCount) {
    let arrayLength = array.length;
    if( arrayLength == 0 ) {
    return array;
  }
  
  if( arraysCount > arrayLength ) {
    return array;
  }
  
  let result = [];
  let newArray = [];
  
    const newArraysLength = arrayLength % arraysCount == 0  ? Math.floor( arrayLength / arraysCount) : Math.ceil ( arrayLength / arraysCount);
  
  // We loop 
  for( let i = 0 ; i < arrayLength; i++ ) {
    if( i % newArraysLength == 0 ) {
        if( i > 0 ) {
        result.push( newArray );
        newArray = [];
      }
    }
    
    newArray.push( array[i] );
  }
  
  let canBeSplitEqually = ( ( arrayLength  ) % newArraysLength == 0 );
  console.log("canBeSplitEqually = ", canBeSplitEqually);
  
  if( !( canBeSplitEqually ) ) {
    result.push( newArray );
  }
    return result;
}
function nabil  (
  array,
  n
)  {
  const elementsPerGroup = Math.round(array.length / n);
  let result = [];
  let positionIndex = 0;
  for (let i = 1; n >= i; i++) {
    const lastIndex =
      i === n
        ? array.length - positionIndex + positionIndex
        : elementsPerGroup + positionIndex;
    result.push(array.slice(positionIndex, lastIndex));
    positionIndex = positionIndex + elementsPerGroup;
  }
  return result;
}; 
Tests:
  • Anas

     
    anas([1, 2, 3, 4, 5], 3)
  • Nabil

     
    nabil([1, 2, 3, 4, 5], 3)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Anas
    Nabil

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (iPhone; CPU iPhone OS 16_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.2 Mobile/15E148 Safari/604.1
Mobile Safari 16 on iOS 16.2
View result in a separate tab
Test name Executions per second
Anas 1210964.6 Ops/sec
Nabil 6566748.0 Ops/sec