25 Stimmen

Partitionierung in JavaScript

Betrachten Sie bitte ein Array wie z.B. :

arrayAll = [1,2,3,4,5,6,7,8,9]

Gibt es ein Paket, mit dem man eine Partitionierung durchführen kann, um eine :

arrayALLPartionned = [[1,2,3],[4,5,6],[7,8,9]]

Ich kann sehen, wie man dies mit einer for-Schleife tun, aber würde eine "vorgefertigte" Funktion zu schätzen wissen, wenn vorhanden.

2voto

Peter Olson Punkte 130102

Sie können dazu eine eigene Prototyp-Methode schreiben

Array.prototype.partition = function(length) {
  var result = [];
  for(var i = 0; i < this.length; i++) {
    if(i % length === 0) result.push([]);
    result[result.length - 1].push(this[i]);
  }
  return result;
};

Wenn Sie es vorziehen, den nativen Prototyp nicht zu ergänzen, können Sie eine einfache Funktion schreiben:

var partition = function(arr, length) {
  var result = [];
  for(var i = 0; i < arr.length; i++) {
    if(i % length === 0) result.push([]);
    result[result.length - 1].push(arr[i]);
  }
  return result;
};

Sie können In dieser jsFiddle-Demo sehen Sie es in Aktion .

1voto

Andy Punkte 131

Prototype hat eine array.partition Funktion sowie eine eachSlice() Funktion. Klingt wie eachSlice() ist, was Sie suchen. Wenn Sie Jquery verwenden, gibt es ein Plug-in, um Prototype-Funktionen verwenden zu können. Hier ist ein Link zu ihm... http://www.learningjquery.com/2009/02/implementing-prototypes-array-methods-in-jquery

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X