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

JavaScript:配列要素のプロパティを比較し、同一の場合は結合します


このようないくつかのデータストレージデバイスに関する情報を含むオブジェクトの配列があるとします-

const drives = [
   {size:"900GB", count:3},
   {size:"900GB", count:100},
   {size:"1200GB", count:5},
   {size:"900GB", count:1}
];

同じサイズが何度も出てくるように注意してください。

このような配列を1つ取り込んで、繰り返されるすべてのサイズを1つの配列インデックスに統合し、明らかにそれらの数を合計する関数を作成する必要があります。

const drives = [
   {size:"900GB", count:3},
   {size:"900GB", count:100},
    {size:"1200GB", count:5},
   {size:"900GB", count:1}
];
const groupDrives = (arr = []) => {
   const map = drives.reduce((map, e) => {
      if (e.size in map) map[e.size].count += e.count
      else map[e.size] = e
         return map;
   }, {})
   const result = Object.keys(map).map(function (k) {
      return this[k]
   }, map);
   return result;
}
console.log(groupDrives(drives));

出力

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

になります
[ { size: '900GB', count: 104 }, { size: '1200GB', count: 5 } ]

  1. JavaScriptでオブジェクトの配列を組み合わせる

    このような一部の学生に関するデータを含むオブジェクトの配列があるとします- const arr = [{    name: 'A',    idNo: 1,    marks: {       math: 98,       sci: 97,       eng: 89    } }, {    name: 'B',    idNo: 2,  

  2. JavaScript-配列の未定義の要素数

    要素の配列を受け取るJavaScript関数を作成する必要があります。要素の配列には、未定義の値も含まれている可能性があります。 この関数は配列の長さをカウントする必要があり、カウントには定義された要素のカウントのみが含まれる必要があります。 例 このためのコードは-になります const arr = [12, undefined, "blabla", ,true, 44]; const countDefined = (arr = []) => {    let filtered;    filtered = arr.fil