Mảng thay đổi sau khi gán cho biến

lập trình


câu hỏi:

Bạn được cung cấp hai mảng và một chỉ mục.

Sao chép từng phần tử của mảng thứ nhất vào mảng thứ hai theo thứ tự.

Bắt đầu chèn các phần tử tại chỉ mục n của mảng thứ hai.

Trả về mảng kết quả. Các mảng đầu vào sẽ giữ nguyên sau khi hàm chạy.

mã của tôi là:

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);

Những gì tôi đã thử:

Tôi muốn mảng2 giữ nguyên, nhưng sau khi gán cho newarr, mảng2 có cùng giá trị newarr có.

Giải pháp 1

Có một lỗi nhỏ trong mã của bạn. Phương thức splice sửa đổi mảng tại chỗ và trả về một mảng chứa các phần tử đã bị xóa. Bạn cần chèn một mảng vào một mảng khác, vì vậy tất cả những gì bạn cần là một mối nối duy nhất. Đây là phiên bản sửa đổi của mã:

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);

Thẩm quyền giải quyết: https://stackoverflow.com/questions/58209968/how-to-use-splice-and-slice-to-put-an-array-into-another-array[^]

コメント

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