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

オブジェクトの配列を繰り返し、JavaScriptで新しいオブジェクトを作成するにはどうすればよいですか?


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

const arr = [
   {
      "customer": "Customer 1",
      "project": "1"
   },
   {
      "customer": "Customer 2",
      "project": "2"
   },
   {
      "customer": "Customer 2",
      "project": "3"
   }
]

そのような配列を1つ受け取り、新しい配列を生成(返す)するJavaScript関数を作成する必要があります。

新しい配列では、同じ値を持つすべての顧客キーがマージされ、出力は次のようになります-

const output = [
   {
      "Customer 1": {
         "projects": "1"
      }
   },
   {
   "Customer 2": {
      "projects": [
         "2",
         "3"
      ]
   }
}
]
>

コードを書いてみましょう-

const arr = [
   {
      "customer": "Customer 1",
      "project": "1"
   },
   {
      "customer": "Customer 2",
      "project": "2"
   },
   {
      "customer": "Customer 2",
      "project": "3"
   }
]
const groupCustomer = data => {
   const res = [];
   data.forEach(el => {
      let customer = res.filter(custom => {
         return el.customer === custom.customer;
      })[0];
      if(customer){
         customer.projects.push(el.project);
      }else{
         res.push({ customer: el.customer, projects: [el.project] });
      };
   });
   return res;
};
console.log(groupCustomer(arr));

出力

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

になります
[
   { customer: 'Customer 1', projects: [ '1' ] },
   { customer: 'Customer 2', projects: [ '2', '3' ] }
]

  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>