I\'m attempting to filter a FreeMarker list in a Magnolia JavaScript model using Array.prototype.filter().
List
[#assign list = [1, 2, 3
The FreeMarker list you are passing to the model is a sequence, not a JavaScript array.
Sequence (3)
0 = 1 (BigDecimal)
1 = 2 (BigDecimal)
2 = 3 (BigDecimal)
To solve the issue, convert the FreeMarker list you are passing to the model to a JavaScript array using Java.from(). For example:
var Model = function() {
this.filterList = function(list) {
return Java.from(list).filter(function(item) {
return item === 2
});
}
};
new Model();