I’m trying to create an array of objects using an array of objects.
My first array is like that :
And I want to create an object list with only an id, a name and a task. This is what i do actually, but it doesn’t work :
JavaScript
x
4
1
var lists = data.filter(l => {
2
return new ListModel(l.listId, l.listName, 'todo');
3
});
4
The ListModel object is :
JavaScript
1
20
20
1
class ListModel {
2
constructor(id, name, tasks) {
3
this.id = id;
4
this.name = name;
5
this.tasks = tasks;
6
}
7
8
setId(id) {
9
this.id = id;
10
}
11
12
setName(name) {
13
this.name = name;
14
}
15
16
setTask(task) {
17
this.task = task;
18
}
19
}
20
Advertisement
Answer
The filter()
function is more-so utilized for returning an array based upon some search criteria, similar to a WHERE clause. What you want is to utilize is the map()
function using something like this:
JavaScript
1
4
1
var lists = data.map(l => {
2
return new ListModel(l.listId, l.listName, 'todo');
3
});
4