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

値を合計しながら配列の配列の一意のアイテムを組み合わせる-JavaScript


配列の配列があり、各サブ配列には正確に2つの要素が含まれています。最初は文字列、この場合は個人名、2番目は整数です。必要なのは、最初の要素が同じで2番目の要素を持つすべてのサブ配列を結合することです。一般的なサブ配列の2番目の要素の合計である必要があります。

以下は、配列の例です-

const example = [[
   'first',
   12
], [
   'second',
   19
], [
   'first',
   7
]];

次のように変換する必要があります

const example = [[
   'first',
   19
   ], [
      'second',
      19
   ]
];

配列を入力として受け取り、結合された配列を出力として返す関数combineArray()を作成するとします。同じコードは、-

になります。

const people = [
   ['Ram', 21],
   ['Mohan', 33],
   ['Vikram', 25],
   ['Mike', 29],
   ['Mohan', 41],
   ['Vikram', 26]
];
const combineArray = (people) => {
   const map = {};
   for(const index in people){
      const name = people[index][0];
      const prop = people[index][1];
      if(map[name]){
         map[name] += prop;
      }else{
         map[name] = prop;
      }
   }
   return Object.keys(map).map(key => [key, map[key]]);
}
console.log(combineArray(people));

出力

コンソールの出力は-

になります
[ [ 'Ram', 21 ], [ 'Mohan', 74 ], [ 'Vikram', 51 ], [ 'Mike', 29 ] ]

CombineArray関数を理解する-

配列を繰り返し処理し、名前をkeyとしてマップし、propを値としてオブジェクトにマップし、重複するキーが確実に追加され、最後にオブジェクトが配列の配列に変換されて返されます。

この関数の時間計算量はO(2n) 多くの場合、 O(n)に丸められます。 スペースの複雑さはO(n) 同様に。


  1. JavaScript array.values()

    JavaScriptのarray.values()は、指定された配列のすべての値を含むイテレータオブジェクトを返します。 以下は、array.values()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />

  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>