Array berubah setelah ditetapkan ke variabel

pemrograman


pertanyaan:

Anda diberikan dua array dan sebuah indeks.

Salin setiap elemen larik pertama ke larik kedua secara berurutan.

Mulailah memasukkan elemen pada indeks n dari array kedua.

Kembalikan array yang dihasilkan. Array masukan harus tetap sama setelah fungsi dijalankan.

kode saya adalah:

JavaScript
<pre>unction frankenSplice(arr1, arr2, n) {
 let newarr = arr2;
  
  newarr.splice(n,0,...arr1);

  console.log(arr2);
  console.log(newarr)
  
  return newarr;
}

frankenSplice([1, 2, 3], [4, 5, 6], 1);

Apa yang saya coba:

Saya ingin arr2 tetap sama, tetapi setelah ditetapkan ke newarr, arr2 mendapatkan nilai yang sama dengan yang dimiliki newarr.

Solusi 1

Ada kesalahan kecil dalam kode Anda. Metode splice memodifikasi array pada tempatnya dan mengembalikan array yang berisi elemen yang dihapus. Anda perlu memasukkan satu larik ke larik lainnya, jadi yang Anda perlukan hanyalah satu sambungan. Ini adalah versi kode yang dimodifikasi:

JavaScript
function frankenSplice(arr1, arr2, n) {
  
  // Create a shallow copy of arr2 to avoid modifying it directly
  let newarr = arr2.slice();
  
  newarr.splice(n, 0, ...arr1);

  console.log(arr2);
  console.log(newarr);

  return newarr;
}
frankenSplice([1, 2, 3], [4, 5, 6], 1);

Referensi: https://stackoverflow.com/questions/58209968/how-to-use-splice-and-slice-to-put-an-array-into-another-array[^]

コメント

タイトルとURLをコピーしました