Rumah > hujung hadapan web > tutorial js > Bagaimanakah anda boleh menggabungkan objek dalam tatasusunan JavaScript dengan kunci \'nama\' yang sama dan menggabungkan kunci \'nilai\' mereka ke dalam tatasusunan?

Bagaimanakah anda boleh menggabungkan objek dalam tatasusunan JavaScript dengan kunci \'nama\' yang sama dan menggabungkan kunci \'nilai\' mereka ke dalam tatasusunan?

DDD
Lepaskan: 2024-10-29 02:25:29
asal
774 orang telah melayarinya

How can you merge objects in a JavaScript array with the same

Menggabungkan Objek dalam Tatasusunan dengan Kunci Dikongsi dalam JavaScript

Pernyataan Masalah

Pertimbangkan tatasusunan dengan objek, di mana setiap objek mempunyai kunci "nama". Objek dengan "nama" berkongsi nilai yang sama. Tugasnya adalah untuk menyusun semula tatasusunan dengan menggabungkan kekunci "nilai" semua objek dengan "nama" yang sama.

Penyelesaian

Untuk menggabungkan objek dalam tatasusunan dengan kunci "nama" yang sama, anda boleh menggunakan pendekatan berikut:

<code class="javascript">var array = [{
  name: "foo1",
  value: "val1"
}, {
  name: "foo1",
  value: ["val2", "val3"]
}, {
  name: "foo2",
  value: "val4"
}];

var output = [];

array.forEach(function(item) {
  var existing = output.filter(function(v, i) {
    return v.name == item.name;
  });
  if (existing.length) {
    var existingIndex = output.indexOf(existing[0]);
    output[existingIndex].value = output[existingIndex].value.concat(item.value);
  } else {
    if (typeof item.value == 'string')
      item.value = [item.value];
    output.push(item);
  }
});

console.dir(output);</code>
Salin selepas log masuk

Penyelesaian ini berulang melalui tatasusunan input, mencari objek sedia ada dengan kunci "nama" yang sama dan menambah "nilai" bagi objek semasa kepada "nilai" objek sedia ada. Jika tiada objek sedia ada, ia menambah objek semasa pada tatasusunan output.

Hasil operasi ini ialah tatasusunan objek di mana objek dengan kunci "nama" yang sama mempunyai kunci "nilai" mereka digabungkan menjadi tatasusunan.

[
  {
    name: "foo1",
    value: ["val1", "val2", "val3"]
  },
  {
    name: "foo2",
    value: ["val4"]
  }
]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda boleh menggabungkan objek dalam tatasusunan JavaScript dengan kunci \'nama\' yang sama dan menggabungkan kunci \'nilai\' mereka ke dalam tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan