Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách chuyển đổi một đối tượng thành một mảng bằng các phương thức đối tượng.: in this tutorial, you will learn how to convert an object to an array using Object’s methods.
Để chuyển đổi một đối tượng thành một mảng, bạn sử dụng một trong ba phương pháp:
2,Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
3 vàCode language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
4.Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Lưu ý rằng phương pháp
2 đã có sẵn kể từ ECMAScript 2015 hoặc ES6 vàCode language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
3 vàCode language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
4 đã có sẵn kể từ ECMAScript 2017.Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Giả sử rằng bạn có một đối tượng
8 như sau:Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Code language: JavaScript [javascript]
const person = { firstName: 'John', lastName: 'Doe' };
Để chuyển đổi tên thuộc tính của đối tượng
8 thành một mảng, bạn sử dụng phương thứcCode language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
2:Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
Output:
Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Để chuyển đổi các giá trị thuộc tính của đối tượng
8 thành một mảng, bạn sử dụng phương thứcCode language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
3:Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Output:
Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
Để chuyển đổi các thuộc tính được khóa chuỗi có thể giải quyết của một đối tượng thành một mảng, bạn sử dụng phương thức
4. Ví dụ:Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Output:
Code language: JSON / JSON with Comments [json]
[ [ 'firstName', 'John' ], [ 'lastName', 'Doe' ] ]
Hướng dẫn này có hữu ích không?
Có nhiều phương pháp khác nhau để kiểm tra một mảng bao gồm một đối tượng hay không. Sử dụng Phương thức bao gồm []: Nếu mảng chứa một đối tượng/phần tử có thể được xác định bằng cách sử dụng phương thức bao gồm []. Phương thức này trả về true nếu mảng chứa đối tượng/phần tử khác trả về sai.
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
Tôi muốn chuyển đổi một đối tượng như thế này:
[[1,5],[2,7],[3,0],[4,0]...].
thành một mảng các cặp giá trị khóa như thế này:
Làm thế nào tôi có thể chuyển đổi một đối tượng thành một mảng các cặp giá trị khóa trong JavaScript?Aug 8, 2016 at 8:21
Hỏi ngày 8 tháng 8 năm 2016 lúc 8:21Soptareanu Alex
Soptareanu Alexsoptareanu Alex4 gold badges14 silver badges15 bronze badges
0
4.4774 Huy hiệu vàng14 Huy hiệu bạc15 Huy hiệu Đồng
var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys[obj].map[[key] => [Number[key], obj[key]]];
console.log[result];
Bạn có thể sử dụng
2 vàCode language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
5 để làm điều nàyAug 8, 2016 at 8:24Code language: JSON / JSON with Comments [json]
[ [ 'firstName', 'John' ], [ 'lastName', 'Doe' ] ]
Đã trả lời ngày 8 tháng 8 năm 2016 lúc 8:24Nenad Vracar
Nenad Vracarnenad Vracar15 gold badges143 silver badges167 bronze badges
1
Huy hiệu vàng 114K15
0Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
Cách tốt nhất là làm:
Gọi
6, như được hiển thị ở đây, sẽ trả về các cặp ____67, theo yêu cầu của người gọi.Code language: JSON / JSON with Comments [json]
[ [ 'firstName', 'John' ], [ 'lastName', 'Doe' ] ]
Ngoài ra, bạn có thể gọi
8, sẽ chỉ trả về các giá trị.Code language: JSON / JSON with Comments [json]
[ [ 'firstName', 'John' ], [ 'lastName', 'Doe' ] ]
Superdj9 gold badges40 silver badges70 bronze badges
7.2739 Huy hiệu vàng40 Huy hiệu bạc70 Huy hiệu đồngMay 14, 2017 at 21:57
2
Đã trả lời ngày 14 tháng 5 năm 2017 lúc 21:57
4 Trả về một mảng có các phần tử là các mảng tương ứng với các cặp thuộc tính enumable
const entries = Object.entries[person]; console.log[entries];
Code language: JavaScript [javascript] 7 được tìm thấy trực tiếp trênCode language: JSON / JSON with Comments [json]
[ [ 'firstName', 'John' ], [ 'lastName', 'Doe' ] ]
1. Thứ tự của các thuộc tính giống như được đưa ra bằng cách lặp qua các giá trị thuộc tính của đối tượng theo cách thủ công.{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
- //developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/object/entries#description
Hàm
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
2 trả về gần như đầu ra chính xác mà bạn yêu cầu, ngoại trừ các khóa là chuỗi thay vì số.1Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
2Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
Nếu bạn cần các phím để trở thành số, bạn có thể ánh xạ kết quả đến một mảng mới với chức năng gọi lại thay thế cho khóa trong mỗi cặp bằng một số bị ép buộc từ nó.
Tôi sử dụng hàm mũi tên và
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
3 cho cuộc gọi lại bản đồ trong ví dụ trên để tôi có thể giữ nó trong một lệnh bằng cách tận dụng thực tế là {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
3 trả về đối tượng được gán cho giá trị trả về của hàm Mũi tên lệnh là kết quả của hướng dẫn.3Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
Điều này tương đương với:
4Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
Như đã đề cập bởi @TravisClarke Trong các bình luận, chức năng bản đồ có thể được rút ngắn thành:
Tuy nhiên, điều đó sẽ tạo ra một mảng mới cho mỗi cặp giá trị khóa, thay vì sửa đổi mảng hiện có tại chỗ, do đó nhân đôi số lượng mảng cặp giá trị khóa được tạo. Mặc dù mảng các mục ban đầu vẫn có thể truy cập được, nhưng các mục của nó sẽ không được thu thập rác.
- Bây giờ, mặc dù sử dụng phương thức tại chỗ của chúng tôi vẫn sử dụng hai mảng giữ các cặp giá trị khóa [đầu vào và mảng đầu ra], tổng số mảng chỉ thay đổi một. Các mảng đầu vào và đầu ra không thực sự chứa đầy các mảng, mà là các tham chiếu đến các mảng và các tài liệu tham khảo đó chiếm một lượng không gian không đáng kể trong bộ nhớ.
- Sửa đổi từng cặp giá trị khóa tại chỗ dẫn đến một lượng tăng trưởng bộ nhớ không đáng kể, nhưng yêu cầu gõ thêm một vài ký tự.
Tạo một mảng mới cho mỗi cặp giá trị khóa dẫn đến tăng gấp đôi lượng bộ nhớ cần thiết, nhưng yêu cầu gõ một vài ký tự ít hơn.
5Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
Đã trả lời ngày 27 tháng 6 năm 2017 lúc 22:28Jun 27, 2017 at 22:28
1
Để tóm tắt lại một số câu trả lời này vào năm 2018, trong đó ES6 là tiêu chuẩn.
Bắt đầu với đối tượng:
6Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
- Chỉ cần nhận được các giá trị một cách mù quáng trên một mảng, không quan tâm đến các phím:
7Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
- Đơn giản nhận được các cặp trên một mảng:
8Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
- Tương tự như trước, nhưng với các khóa số trên mỗi cặp:
9Code language: JavaScript [javascript]
const propertyNames = Object.keys[person]; console.log[propertyNames];
- Sử dụng thuộc tính đối tượng làm khóa cho một mảng mới [có thể tạo các mảng thưa thớt]:
0Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Phương pháp cuối cùng này, nó cũng có thể tổ chức lại thứ tự mảng tùy thuộc vào giá trị của các khóa. Đôi khi đây có thể là hành vi mong muốn [đôi khi không]. Nhưng lợi thế bây giờ là các giá trị được lập chỉ mục trên khe mảng chính xác, cần thiết và tầm thường để thực hiện tìm kiếm trên đó.
- Bản đồ thay vì mảng
Cuối cùng [không phải là một phần của câu hỏi ban đầu, mà là tính đầy đủ], nếu bạn cần dễ dàng tìm kiếm bằng khóa hoặc giá trị, nhưng bạn không muốn các mảng thưa thớt, không sao chép và không sắp xếp lại mà không cần chuyển đổi thành các khóa số [ Thậm chí có thể truy cập các khóa rất phức tạp], sau đó mảng [hoặc đối tượng] không phải là thứ bạn cần. Tôi sẽ giới thiệu
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
5 thay thế://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map
1Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Đã trả lời ngày 12 tháng 11 năm 2018 lúc 22:38Nov 12, 2018 at 22:38
CarlosH.CarlosH.CarlosH.
6977 Huy hiệu bạc12 Huy hiệu Đồng7 silver badges12 bronze badges
3
Trong Ecmascript 6,
2Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
3Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Đã trả lời ngày 8 tháng 8 năm 2016 lúc 12:21Aug 8, 2016 at 12:21
0
Một giải pháp khác nếu
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
2 sẽ không phù hợp với bạn.4Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Đã trả lời ngày 22 tháng 8 năm 2017 lúc 15:50Aug 22, 2017 at 15:50
bigh_29bigh_29bigh_29
2.42925 Huy hiệu bạc22 Huy hiệu đồng25 silver badges22 bronze badges
2
Sử dụng các phương pháp
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
7 và {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
8.{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
7 and {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
8 methods.5Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Đã trả lời ngày 8 tháng 8 năm 2016 lúc 8:25Aug 8, 2016 at 8:25
Pranav C Balanpranav C BalanPranav C Balan
Huy hiệu vàng 112K2323 gold badges161 silver badges182 bronze badges
Sử dụng
{"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
2 để có được từng yếu tố của đối tượng ở định dạng [[1,5],[2,7],[3,0],[4,0]...].
0, sau đó [[1,5],[2,7],[3,0],[4,0]...].
1 thông qua chúng như thế này:6Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Nhưng, nếu bạn chắc chắn rằng các khóa sẽ theo thứ tự tiến bộ, bạn có thể sử dụng
[[1,5],[2,7],[3,0],[4,0]...].
2 và {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
8 để làm điều gì đó như thế này:progressive order you can use [[1,5],[2,7],[3,0],[4,0]...].
2 and {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
8 to do something like this: 7Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Đã trả lời ngày 6 tháng 8 năm 2018 lúc 7:51Aug 6, 2018 at 7:51
BlackbeardblackbeardBlackBeard
9.8107 Huy hiệu vàng49 Huy hiệu bạc61 Huy hiệu Đồng7 gold badges49 silver badges61 bronze badges
0
Bạn có thể sử dụng
[[1,5],[2,7],[3,0],[4,0]...].
4, bạn có thể cần polyfill này nếu bạn chưa có:8Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
//stackoverflow.com/a/54822153/846348
Sau đó, bạn chỉ có thể làm:
9Code language: JSON / JSON with Comments [json]
[ 'firstName', 'lastName' ]
Chỉ cần nhớ rằng các mảng trong JS chỉ có thể sử dụng các khóa số, vì vậy nếu bạn đã sử dụng thứ khác trong đối tượng thì chúng sẽ trở thành `0,1,2 ... x``
Nó có thể hữu ích để loại bỏ các bản sao chẳng hạn nếu bạn có một khóa duy nhất.
0Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Đã trả lời ngày 26 tháng 2 năm 2020 lúc 9:21Feb 26, 2020 at 9:21
OzzieozzieOZZIE
5.9267 Huy hiệu vàng51 Huy hiệu bạc56 Huy hiệu Đồng7 gold badges51 silver badges56 bronze badges
Với Lodash, ngoài câu trả lời được cung cấp ở trên, bạn cũng có thể có chìa khóa trong mảng đầu ra.
Không có các phím đối tượng trong mảng đầu ra
for:
1Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Nếu OBJ là như sau:
2Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Sau đó, mảng sẽ là:
3Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Với các phím đối tượng trong mảng đầu ra
Nếu bạn viết thay thế ['Thể loại' là một chuỗi mà bạn chọn]:
4Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Bạn sẽ nhận được:
5Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Đã trả lời ngày 8 tháng 6 năm 2018 lúc 8:55Jun 8, 2018 at 8:55
YossiyossiYossi
5.2196 Huy hiệu vàng36 Huy hiệu bạc72 Huy hiệu đồng6 gold badges36 silver badges72 bronze badges
Nếu bạn đang sử dụng Lodash, nó có thể đơn giản như thế này:
6Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Đã trả lời ngày 2 tháng 3 năm 2018 lúc 7:58Mar 2, 2018 at 7:58
Adam Boostaniadam BoostaniAdam Boostani
5.6878 Huy hiệu vàng37 Huy hiệu bạc44 Huy hiệu đồng8 gold badges37 silver badges44 bronze badges
7Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Đã trả lời ngày 6 tháng 4 năm 2021 lúc 12:07Apr 6, 2021 at 12:07
8Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Đã trả lời ngày 14 tháng 4 lúc 7:55Apr 14 at 7:55
Đây là giải pháp của tôi, tôi có cùng một vấn đề và có vẻ như giải pháp này phù hợp với tôi.
9Code language: JavaScript [javascript]
const propertyValues = Object.values[person]; console.log[propertyValues];
Đã trả lời ngày 16 tháng 10 năm 2019 lúc 21:31Oct 16, 2019 at 21:31
Qui-Gon Jinnqui-Gon JinnQui-Gon Jinn
3.0543 Huy hiệu vàng24 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges24 silver badges30 bronze badges
Dưới đây là cách "mới" với ES6 sử dụng toán tử
[[1,5],[2,7],[3,0],[4,0]...].
5 kết hợp với {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
2.0Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
Đã trả lời ngày 30 tháng 9 năm 2021 lúc 17:14Sep 30, 2021 at 17:14
brff19brff19brff19
6901 Huy hiệu vàng8 Huy hiệu bạc18 Huy hiệu đồng1 gold badge8 silver badges18 bronze badges
Sử dụng cho trongfor in
1Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
Đã trả lời ngày 1 tháng 9 năm 2017 lúc 19:08Sep 1, 2017 at 19:08
Phim chuyển đổi đệ quy thành mảng
2Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
Đã trả lời ngày 15 tháng 11 năm 2017 lúc 10:11Nov 15, 2017 at 10:11
Chúng ta có thể thay đổi số thành loại chuỗi cho khóa như bên dưới:
3Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
Đã trả lời ngày 16 tháng 8 năm 2019 lúc 4:43Aug 16, 2019 at 4:43
hoặc bạn có thể sử dụng Object.Assign []:
4Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
Đã trả lời ngày 18 tháng 10 lúc 8:38Oct 18 at 8:38
Bạn có thể sử dụng 3 phương thức chuyển đổi mảng Inot đối tượng [tham khảo cho bất kỳ ai không chỉ cho câu hỏi này]
2, ________ 53 và ________ 54Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
Ví dụ cho 3 phương pháp
sử dụng object.keys []
5Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
6Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
7Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
sử dụng object.values []
8Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
kết quả
9Code language: JSON / JSON with Comments [json]
[ 'John', 'Doe' ]
sử dụng object.entires []
0Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
kết quả
1Code language: JavaScript [javascript]
const entries = Object.entries[person]; console.log[entries];
sử dụng object.entires []Nov 11 at 16:32
1
Đã trả lời ngày 11 tháng 11 lúc 16:32
Bạn có thể sử dụng _.castarray [OBJ].
Ví dụ:
var obj = {"1":5,"2":7,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0}
var result = Object.keys[obj].map[[key] => [Number[key], obj[key]]];
console.log[result];
0Sep 17, 2018 at 6:51
Đã trả lời ngày 17 tháng 9 năm 2018 lúc 6:51Chopper Lee
Chopper Leechopper Lee2 gold badges11 silver badges30 bronze badges