Hướng dẫn javascript flatten array of objects by key - javascript làm phẳng mảng đối tượng bằng phím
Giả sử tôi có mảng sau của các đối tượng lưu trữ một cặp khóa \ giá trị: Show
Tôi muốn làm phẳng mảng này vào một đối tượng, trong đó mỗi khóa từ các đối tượng gốc trở thành một thuộc tính của đối tượng đơn mới như vậy:
Tôi sẽ luôn có các khóa duy nhất và chỉ có một khóa ghép giá trị. Tôi biết nếu tôi lặp qua mảng trong một foreach, thì tôi chỉ có thể truy cập vào chỉ mục và giá trị của mục, ví dụ:
Tôi muốn có thể lặp lại và khi truy cập mục, hãy đọc khóa và giá trị riêng biệt để tôi có thể nối vào đối tượng mới của mình. Tôi cảm thấy như Lodash sẽ có thể giúp đỡ ở đây, nhưng tôi đang vật lộn để tìm ra phương pháp của họ có thể giúp ích. Ai đó có thể chỉ cho tôi đi đúng hướng? Cảm ơn Phương pháp Thử nóCú phápThông số 1 Tùy chọnOptionalMức độ sâu chỉ định mức độ sâu của cấu trúc mảng lồng nhau nên được làm phẳng. Mặc định là 1. Giá trị trả vềMột mảng mới với các phần tử con được nối với nó. Sự mô tảPhương pháp 0 là một phương thức sao chép. Nó không thay đổi 3 mà thay vào đó trả về một bản sao nông chứa các phần tử giống như các phần tử từ mảng gốc.Phương pháp 0 bỏ qua các khe trống nếu mảng được làm phẳng là thưa thớt. Ví dụ, nếu 1 là 1, cả hai khe trống trong mảng gốc và ở cấp độ đầu tiên của các mảng lồng nhau đều bị bỏ qua, nhưng các khe trống trong các mảng lồng tiếp theo được bảo tồn với chính các mảng.Phương pháp 0 là chung chung. Nó chỉ mong đợi giá trị 3 có thuộc tính 8 và các thuộc tính được khóa. Tuy nhiên, các yếu tố của nó phải là mảng nếu chúng bị san phẳng.Lựa chọn thay thếgiảm và liên kết
Giảm + Concat + Isarray + đệ quy
Sử dụng một ngăn xếp
Sử dụng hàm máy phát điện
Ví dụLàm phẳng mảng lồng nhau
Sử dụng flat () trên các mảng thưa thớtPhương thức 0 loại bỏ các khe trống trong các mảng:
Gọi phẳng () trên các đối tượng không phải làPhương thức 0 đọc thuộc tính 8 của 3 và sau đó truy cập vào từng chỉ mục số nguyên. Nếu phần tử không phải là một mảng, nó sẽ được nối trực tiếp với kết quả. Nếu phần tử là một mảng, nó sẽ được làm phẳng theo tham số 1.
Thông số kỹ thuật
Tính tương thích của trình duyệt webBảng BCD chỉ tải trong trình duyệt Xem thêmLàm thế nào để bạn làm phẳng một mảng các đối tượng?Bạn sử dụng phương thức Flat () để kết nối các phần tử con đệ quy thành một mảng duy nhất. Phương thức phẳng () lấy giá trị độ sâu làm tham số của nó, tùy chọn tùy thuộc vào độ sâu của mảng bạn muốn làm phẳng (concatenate). Phương thức phẳng () lấy 1 làm chiều sâu theo mặc định.use the flat() method for concatenating sub-arrays recursively into a single array. The flat() method takes a depth value as its parameter which is optional depending on the depth of the array you wish to flatten (concatenate). The flat() method takes in 1 as a depth by default.
Làm thế nào để bạn làm phẳng một mảng đối tượng lồng nhau?Chúng ta có thể làm phẳng mảng theo một trong những cách sau:.. Sử dụng javascript đơn giản (ES6) const familyTree = [// như trên]; const getMembers = (thành viên) => {hãy để trẻ em = []; const FlattenMembers = Thành viên. .... Sử dụng phương pháp lodash flatmapdeep .. Làm thế nào để bạn đặt một mảng trong javascript?Các phương pháp khác nhau để làm phẳng một mảng.. một.Sử dụng Concat () và Ứng dụng () Let FlatArray = [].liên kết..... b.Sử dụng toán tử lây lan.Đặt FlatArray = [].Concat (... mảng);// Đầu ra: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] .... c.Sử dụng phương pháp giảm.Đặt FlatArray = mảng.Giảm ((acc, curval) => {return acc .. Làm thế nào để bạn làm phẳng một đối tượng đối tượng?Approach:.. Chúng tôi tạo một hàm gọi là đối tượng phẳng lấy đầu vào của một đối tượng và trả về một đối tượng .. Vòng lặp qua đối tượng và kiểm tra loại thuộc tính hiện tại: nếu nó thuộc loại đối tượng và nó không phải là một mảng, hãy gọi lại chức năng.Nếu không, lưu trữ giá trị trong kết quả .. Trả lại đối tượng .. |