Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの配列内の一致する要素をグループ化する


このような繰り返しアルファベットを含むアルファベットの配列があるとします-

const arr = [
   'a','a','a','a','d','e','e','f','h','h','h','i','l','m','n',
   'r','s','s',' t','u','v','y','y'
];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。関数は、すべての同一のアファベットを固有のサブ配列にグループ化する必要があります。

したがって、上記の配列の場合、出力は次のようになります-

const output = [
   ['a','a','a','a'], ['d'], ['e','e'], ['f'], ['h','h','h'],
   ['i'], ['l'], ['m'], ['n'], ['r'], ['s','s'], ['t'], ['u'],
   ['v'], ['y','y']
];

このためのコードは-

になります
const arr = [
   'a','a','a','a','d','e','e','f','h','h','h','i','l','m','n','r','s','s','
   t','u','v','y','y'
];
const bringAlong = (arr = []) => {
   const hash = {};
   return arr.reduce(function(res, e) {
      if(hash[e] === undefined)
         hash[e] = res.push([e]) − 1;
      else
         res[hash[e]].push(e);
      return res;
   }, []);
};
console.log(bringAlong(arr));

出力

そして、コンソールの出力は-

になります
[
   [ 'a', 'a', 'a', 'a' ],
   [ 'd' ],
   [ 'e', 'e' ],
   [ 'f' ],
   [ 'h', 'h', 'h' ],
   [ 'i' ],
   [ 'l' ],
   [ 'm' ],
   [ 'n' ],
   [ 'r' ],
   [ 's', 's' ],
   [ 't' ],
   [ 'u' ],
   [ 'v' ],
   [ 'y', 'y' ]
]

  1. JavaScriptでIDごとにオブジェクトの配列をグループ化する方法は?

    以下は、JavaScriptでオブジェクトの配列をIDでグループ化するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>

  2. 配列の最後の要素を出力するJavaScriptコード

    以下は、配列の最後の要素を出力するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>    bod