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

JavaScriptで重複をカウントし、オブジェクトの配列を集約する


このようなオブジェクトの配列があるとします-

const arr = [
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "",
      "New Lv1−Lv2": "test"
   }];

そのようなオブジェクトの配列を1つ取り込むJavaScript関数を作成する必要があります。この関数は、オブジェクトが繰り返されていない新しい配列を作成して返します(繰り返されるとは、「Country」プロパティの値が同じオブジェクトを意味します)。

さらに、関数は、元の配列に出現した回数を表すcountプロパティを各オブジェクトに割り当てる必要があります。

このためのコードは-

になります
const arr = [
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "BR",
      "New Lv1−Lv2": "#N/A"
   },
   {
      "Country": "",
      "New Lv1−Lv2": "test"
   }];
   const convert = (arr) => {
      const res = {};
      arr.forEach((obj) => {
         const key = `${obj.Country}${obj["New Lv1−Lv2"]}`;
         if (!res[key]) {
            res[key] = { ...obj, count: 0 };
         };
         res[key].count += 1;
      });
   return Object.values(res);
};
console.log(convert(arr));
を返します

出力

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

になります
[
   { Country: 'BR', 'New Lv1-Lv2': '#N/A', count: 2 },
   { Country: '', 'New Lv1-Lv2': 'test', count: 1 }
]

  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> <styl