OrderedMap to List to get the first item
Sort
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.7.2/immutable.min.js"></script>
Babel + JSX
console.clear();
var props = {
"item": {
"A": {
"sequence": false,
"color": "#F23123"
},
"B": {
"sequence": true,
"color": "#112F12"
},
"C":{
"sequence": false,
"color": "#A12A12"
}
}
}
var data = Immutable.fromJS(props,(key, value)=>{
var isIndexed = Immutable.Iterable.isIndexed(value);
return isIndexed ? value.toList() :value.toOrderedMap();
});
console.log(data)
var sorted = data.get('item').sort((itemA, itemB) => {
console.log(itemA, itemB);
var sortBysequence = itemA.sequence === itemB.sequence ? 0 : itemA.sequence ? 1 : 0;
console.log("sortBysequence", sortBysequence)
if (sortBysequence !== 0) {
return sortBysequence;
}
var sortByColor = itemA.color < itemB.color ? -1 : itemA.color > itemB.color ? 1 : 0;
console.log("sortByColor", sortByColor)
return sortByColor;
});
console.log(sorted)