JavaScriptで指定した数値ごとに、配列を区分け・分割する方法

JavaScript_Separator

こんにちはフロントエンドエンジニアのまさにょんです!

今回は、JavaScriptで指定した数値ごとに、配列を区分け・分割する方法について解説していきます。

JavaScriptで指定した数値ごとに、配列を区分け・分割する方法

まずはJavaScriptで指定した数値ごとに、配列を区分け・分割する処理のSampleCodeを紹介します。

配列を区分け・分割する処理のSample

const cardList = [
  {id: 1, participant: 'ロボたま', affiliation: 'ロボ玉開発部'},
  {id: 2, participant: 'まりたま', affiliation: 'エンジニア'},
  {id: 3, participant: '白桃', affiliation: 'エンジニア'},
  {id: 4, participant: 'ももちゃん', affiliation: '人事部'},
  {id: 5, participant: 'まさぴょん', affiliation: '営業部'},
  {id: 6, participant: 'まりぴょん', affiliation: 'デザイナー'},
  {id: 7, participant: 'ハム太郎', affiliation: 'エンジニア'},
  {id: 8, participant: 'ロボ太郎', affiliation: 'ロボ玉開発部'},
  {id: 9, participant: 'まり太郎', affiliation: 'デザイナー'},
  {id: 10, participant: 'ぷる玉', affiliation: 'エンジニア'},
  {id: 11, participant: 'ロボ玉試作1号機', affiliation: '営業部'},
];

let groupingNum = 3;
let len = cardList.length;
let curentNum = 0;
const separateList = [];
let tmpList = [];

cardList.forEach((card, index) => {
  // index:0 は数値として挙動を乱す
  curentNum = index +1;
  tmpList.push(card);

  // groupingNum ごとに separateListにPushする
  if (curentNum % groupingNum === 0) {
    separateList.push(tmpList); 
    tmpList = []; //初期化処理
  }
  // 最後にあまりの部分を処理する
  if (len === curentNum) {
    if (!tmpList.length) return; 
    else separateList.push(tmpList);
  }
});
console.log('separateList', separateList);

配列を区分け・分割する関数Sample

先述の処理を踏まえた次の関数は、指定した数値ごとに配列を区分け・分割するものになります。


const cardList = [
  {id: 1, participant: 'ロボたま', affiliation: 'ロボ玉開発部'},
  {id: 2, participant: 'まりたま', affiliation: 'エンジニア'},
  {id: 3, participant: '白桃', affiliation: 'エンジニア'},
  {id: 4, participant: 'ももちゃん', affiliation: '人事部'},
  {id: 5, participant: 'まさぴょん', affiliation: '営業部'},
  {id: 6, participant: 'まりぴょん', affiliation: 'デザイナー'},
  {id: 7, participant: 'ハム太郎', affiliation: 'エンジニア'},
  {id: 8, participant: 'ロボ太郎', affiliation: 'ロボ玉開発部'},
  {id: 9, participant: 'まり太郎', affiliation: 'デザイナー'},
  {id: 10, participant: 'ぷる玉', affiliation: 'エンジニア'},
  {id: 11, participant: 'ロボ玉試作1号機', affiliation: '営業部'},
];


function ArrayGrouping (list, groupingNum) {
  let len = list.length;
  let curentNum = 0;
  const separateList = [];
  let tmpList = [];

  list.forEach((item, index) => {
    curentNum = index +1;
    tmpList.push(item);
    if (curentNum % groupingNum === 0) {
      separateList.push(tmpList); 
      tmpList = [];
    }
    if (len === curentNum) {
      if (!tmpList.length) return; 
      else separateList.push(tmpList);
    }
  });
  return separateList;
}

console.log(ArrayGrouping(cardList, 2));

JavaScript書籍 Ver. 中級-上級者向け

JavaScript書籍 Ver. 初級者向け

Twitterやってます!Follow Me!

神聖グンマー帝国の逆襲🔥

神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!

最近の投稿