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

一意の配列値をフィルタリングし、JavaScriptで合計する


このような配列の配列があるとします-

const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]];

そのような配列を1つ取り込む関数を作成することになっています。すべてのサブアレイには、正確に3つの要素が含まれていることに注意してください。

この関数は、最初の要素として繰り返し値を持つサブ配列を除外する必要があります。さらに、サブ配列については、既存の非反復対応要素に3番目の要素を追加する必要があることを削除します。

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

const output = [[12345, "product", "25"],[1234567, "other", "10"]];

このためのコードは-

になります
const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567,
"other", "10"]];
const addSimilar = (arr = []) => {
   const res = [];
   const map = {};
   arr.forEach(el => {
      const [id, name, amount] = el;
      if(map.hasOwnProperty(id)){
         const newAmount = +amount + +res[map[id] - 1][2];
         res[map[id] - 1][2] = '' + newAmount;
      }else{
         map[id] = res.push(el);
      }
   });
   return res;
}
console.log(addSimilar(arr));

出力

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

になります
[ [ 12345, 'product', '25' ], [ 1234567, 'other', '10' ] ]

  1. 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>

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