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

JavaScriptのプロパティでオブジェクトをグループ化する


このような果物や野菜に関するデータを含むオブジェクトの配列があるとします-

const arr = [
   {food: 'apple', type: 'fruit'},
   {food: 'potato', type: 'vegetable'},
   {food: 'banana', type: 'fruit'},
];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。

次に、関数は、オブジェクトの「type」プロパティに基づいて配列オブジェクトをグループ化する必要があります。

これは、すべての「果物」タイプのオブジェクトがグループ化され、「野菜」タイプのオブジェクトが別々にグループ化されることを意味します。

このためのコードは-

になります
const arr = [
   {food: 'apple', type: 'fruit'},
   {food: 'potato', type: 'vegetable'},
   {food: 'banana', type: 'fruit'},
];
const transformArray = (arr = []) => {
   const res = [];
   const map = {};
   let i, j, curr;
   for (i = 0, j = arr.length; i < j; i++) {
      curr = arr[i];
      if (!(curr.type in map)) {
         map[curr.type] = {type: curr.type, foods: []};
         res.push(map[curr.type]);
      };
      map[curr.type].foods.push(curr.food);
   };
   return res;
};
console.log(transformArray(arr));

出力

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

になります
[
   { type: 'fruit', foods: [ 'apple', 'banana' ] },
   { type: 'vegetable', foods: [ 'potato' ] }
]

  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の値に基づいてオブジェクトをグループ化する方法は?

    以下は、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>