Làm thế nào để bạn sao chép trong javascript?
Khi chúng tôi thay đổi thuộc tính của var a = {}; a.a = a;3 hoặc var a = {}; a.a = a;4, chúng tôi sẽ thay đổi giá trị tại địa chỉ của đối tượng Show Nếu chúng ta muốn sao chép một giá trị nguyên thủy, chúng ta có thể sử dụng var a = {}; a.a = a;5, nhưng đối với các đối tượng, chúng ta không thể sử dụng toán tử gán Khi sao chép các đối tượng, có hai loại
Khi chúng ta sao chép nông một đối tượng nguồn sang một đối tượng đích, nếu giá trị thuộc tính của đối tượng nguồn là nguyên thủy, thì giá trị đó sẽ được sao chép sang đối tượng đích. Nhưng nếu giá trị thuộc tính của đối tượng nguồn là tham chiếu, thì tham chiếu được chia sẻ giữa đối tượng nguồn và đối tượng đích Trong một bản sao sâu, tất cả các thuộc tính (bao gồm cả tham chiếu) của đối tượng nguồn được sao chép dưới dạng giá trị cho đối tượng đích. Không có chia sẻ tham chiếu giữa các đối tượng nguồn và đích Sự khác biệt giữa sao chép nông và sâuBản sao nông Sử dụng toán tử trải rộngToán tử trải phổ sẽ sao chép tất cả các thuộc tính có thể đếm được của var a = {}; a.a = a;6 sang var a = {}; a.a = a;7 Sử dụng vòng lặpĐoạn mã trên sẽ lặp qua tất cả các thuộc tính của đối tượng và sao chép giá trị vào đối tượng đích Sự vật. giao phóvar source = {one : 1, nested: {two : 2}};var target = Object.assign({}, source); Sao chép sâu Sử dụng var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //30 và var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //31 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //30 và var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //31 chỉ hoạt động với số, chuỗi và đối tượng bằng chữ và không hỗ trợ thuộc tính hàm hoặc biểu tượng Ngoài ra, nếu giá trị của thuộc tính trong đối tượng là var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //34, thì việc sử dụng var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //30 sẽ chuyển đổi var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //36 thành một chuỗi________số 8 Vật thể hình tròn là gì?var a = {}; a.a = a; Các đối tượng hình tròn là các đối tượng có giá trị thuộc tính tham chiếu đến chính chúng Khi chúng tôi thực hiện một bản sao sâu của một đối tượng hình tròn, nó sẽ diễn ra vô tận. var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //37 sẽ đưa ra một lỗi ngoại lệ khi chúng tôi thực hiện một bản sao sâu trên một đối tượng hình tròn Chúng ta có thể sử dụng var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //38 để sao chép đối tượng hình tròn — nhưng tránh tạo đối tượng hình tròn ngay từ đầu Triển khai bản sao tùy chỉnh Trong phương thức var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //39, chúng ta sẽ lặp qua tất cả các thuộc tính của đối tượng. Nếu giá trị của đối tượng là nguyên thủy, chỉ cần sao chép nó. Nếu giá trị là tham chiếu, hãy gọi phương thức var source = {one : 1, nested: {two : 2}};var target = Object.assign({}, source);0 Có nhiều phương pháp khác nhau để loại bỏ các bản sao trong mảng. Chúng tôi sẽ thảo luận về bốn cách phổ biến nhất Sử dụng phương thức filter(). Phương thức filter() tạo một mảng mới gồm các phần tử vượt qua điều kiện mà chúng ta cung cấp. Nó sẽ chỉ bao gồm những phần tử mà giá trị true được trả về. Chúng tôi có thể loại bỏ các giá trị trùng lặp khỏi mảng bằng cách điều chỉnh điều kiện của chúng tôi Javascriptvar a = {}; a.a = a;8 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //300 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //301 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345______103 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //346 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //348 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 đầu ra var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //34 Sử dụng phương thức Set(). Phương pháp này thiết lập một loại đối tượng mới với ES6 (ES2015) cho phép bạn tạo các bộ sưu tập các giá trị duy nhất Javascriptvar a = {}; a.a = a;8 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //300 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //301 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345______103 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = {}; a.a = a;96 var a = {}; a.a = a;97 var a = {}; a.a = a;98 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 đầu ra var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //34 Sử dụng phương thức forEach(). Bằng cách sử dụng phương thức forEach(), chúng ta có thể lặp lại các phần tử trong mảng và chúng ta sẽ đẩy vào mảng mới nếu nó không tồn tại trong mảng Javascriptvar a = {}; a.a = a;8 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //300 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //301 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 ________ 144 ________ 100 ________ 1026 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3028 ________ 144 ________ 1030 ________ 1031 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3032 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3033 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3037 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3400 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 đầu ra var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //34 Sử dụng phương thức reduce(). Phương thức reduce() được sử dụng để rút gọn các phần tử của mảng và kết hợp chúng thành một mảng cuối cùng dựa trên một số hàm rút gọn mà bạn truyền vào Javascriptvar a = {}; a.a = a;8 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //300 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //301 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //302 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //303 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //300 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3428 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3430 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3030 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3433 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3032 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3435 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3438 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3440 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //344 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //345 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //3400 var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //340
var a = {}; a.a = a;9 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //342 var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //343 đầu ra var a = { one : 1};var b = a;a.one = 2;console.log(b.one); // 2b.one = 3;console.log(a.one); //34 Sử dụng Phương thức indexOf(). Phương thức indexOf() được sử dụng để tìm chỉ số xuất hiện đầu tiên của một phần tử mảng. chúng ta có thể lặp lại các phần tử trong mảng và chúng ta sẽ đẩy vào mảng mới nếu nó không tồn tại trong mảng kết quả. Bộ JavaScript có thể có bản sao không?Đối tượng Set chỉ lưu trữ các giá trị duy nhất và tự động loại bỏ tất cả các giá trị trùng lặp. Khi một mảng chứa các bản sao được chuyển đến đối tượng Set, tất cả các bản sao sẽ bị xóa . Đã sao chép. Thuộc tính kích thước trên Tập hợp trả về số lượng giá trị mà Tập hợp chứa.
Làm cách nào bạn có thể nhân đôi các phần tử của một mảng trong JavaScript?function double (arr){ let newArr = []; . chiều dài; . push(arr[i] * 2); . log(newArr) ; . . |