ReshapeArray

by João Vitor Scheuermann

TypeScript

Array.prototype.reshape = function(rows, cols) {
  var copy = this.slice(0); // Copy all elements.
  this.length = 0; // Clear out existing array.

  for (var r = 0; r < rows; r++) {
    var row = [];
    for (var c = 0; c < cols; c++) {
      var i = r * cols + c;
      if (i < copy.length) {
        row.push(copy[i]);
      }
    }
    this.push(row);
  }
};

function reshapeArray(arr: number[], rows: number, cols: number) {
  var copy = arr.slice(0);;
  var clean: number[][] = new Array();;

  for (var r = 0; r < rows; r++) {
    var row = [];
    for (var c = 0; c < cols; c++) {
      var i = r * cols + c;
      if (i < copy.length) {
        row.push(copy[i]);
      }
    }
    clean.push(row);
  }
  return clean;
}

m1 = Array(235200);
m2 = [0, 1, 2, 3];
m3 = [0, 1, 2, 3, 0, 1, 2, 3];
  //console.log(reshapeArray(m1, 84, 700)); // Reshape array in-place.

function dropInInterval(array, interval) {
  let copy = array.slice(0);
  let clean = new Array();

  let index = 0;

  for (let value of copy) {
    if (index < interval - 1) {
      index++;
      clean.push(value);
    } else {
      index = 0;
    }
  }
  return clean;
}

console.log(reshapeArray(dropInInterval(m1, 4), 84, 700))