2015-10-15 30 views
8

Tôi đang sử dụng bản đồ bất biến từ http://facebook.github.io/immutable-js/docs/#/MapImmutable.js Bản đồ giá trị cho mảng

tôi cần để có được một mảng các giá trị ra để vượt qua một dịch vụ phụ trợ và tôi nghĩ rằng tôi thiếu cái gì cơ bản, làm cách nào để làm đi ?

Tôi đã thử:

mymap.valueSeq().toArray()

Nhưng tôi vẫn nhận được một cấu trúc dữ liệu không thay đổi trở lại?

Ví dụ:

var d = '[{"address":"10.0.35.118","cpus":4}]'; 
var sr = JSON.parse(d); 
var is = Immutable.fromJS(sr); 

console.log(sr); 

console.log(is.toArray()); 
console.log(is.valueSeq().toArray()); 

Xem này http://jsfiddle.net/3sjq148f/2/

Mảng mà chúng tôi nhận lại từ các cấu trúc dữ liệu không thay đổi dường như vẫn được trang trí bằng các lĩnh vực bất biến cho từng đối tượng chứa. Đó có phải là mong đợi không?

+1

Bạn có thể cho biết thêm chi tiết? Ngoài ra tôi nghĩ bạn có thể thử 'toJS'. –

+1

[jsfiddle] (https://jsfiddle.net/3sjq148f/1), làm việc cho tôi. Bạn thậm chí không cần 'valueSeq'. Bạn có thể tạo một mẫu để tái tạo nó không? – fuyushimoya

+2

hãy thử điều này: 'var array = [] mymap.valueSeq(). ForEach (hàm (item) {array.push (item)})' – javaguest

Trả lời

3

Đó là bởi vì sr là một Array của Object, vì vậy nếu bạn sử dụng .fromJS để chuyển đổi nó, nó trở nên List của Map.

Các is.valueSeq().toArray(); (valueSeq là không cần thiết ở đây.) Chuyển đổi nó để Array của Map, vì vậy bạn cần phải lặp qua mảng, và chuyển đổi từng Map mục để Array.

var d = '[{"address":"10.0.35.118","cpus":4}]'; 
 
var sr = JSON.parse(d); 
 

 
// Array of Object => List of Map 
 
var is = Immutable.fromJS(sr); 
 

 
console.log(sr); 
 
console.log(is.toArray()); 
 

 
// Now its Array of Map 
 
var list = is.valueSeq().toArray(); 
 

 
console.log(list); 
 

 
list.forEach(function(item) { 
 
    
 
    // Convert Map to Array 
 
    console.log(item.toArray()); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.7.5/immutable.min.js"></script>

12

Chỉ cần sử dụng someMap.toIndexedSeq().toArray() để nhận một mảng giá trị duy nhất.

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