2016-02-25 54 views
10

Tôi muốn lấy chìa khóa() từ bản đồ Bất biến sau:immutable.js lấy key từ bản đồ/băm

var map = Immutable.fromJS({"firstKey": null, "secondKey": null }); 
console.log(JSON.stringify(map.keys())); 

Tôi mong chờ kết quả:

["firstKey", "secondKey"] 

Tuy nhiên kết quả đầu ra này:

{"_type":0,"_stack":{"node":{"ownerID":{},"entries":[["firstKey",null],["secondKey",null]]},"index":0}} 

Làm cách nào để thực hiện đúng?

JSFiddle liên kết: https://jsfiddle.net/o04btr3j/57/

Trả lời

25

Đây là cách đối tượng ImmutableJS trông như thế nào.

Nếu bạn muốn nhận được:

["firstKey", "secondKey"] 

Bạn cần phải làm:

console.log(map.keySeq().toArray()) 
+2

Bạn cũng có thể sử dụng chung 'toJS() 'để chuyển đổi loại không thay đổi về đối tượng js bình thường hoặc mảng. – OlliM

12

Mặc dù câu hỏi này đã trả lời một lúc trước, đây là một chút update:

ES6 Giải pháp:

const [ ...keys ] = map.keys(); 

Pre ES6 Giải pháp:

var keys = map.keySeq().toArray(); 
+0

Giải pháp ES6 được cập nhật tuyệt vời! –

+1

ES6 là ES2015. Bạn có nghĩa là trước ES2015? – Druckles

+0

Đã thay đổi. Cảm ơn bạn đã đề cập – lumio

Các vấn đề liên quan