Итак, я обнаружил go в этих двух сообщениях:
ES6 .filter внутри .filter
[
{
"id": 0,
"title": "happy dayys",
"owner": {"id": "1", "username": "dillonraphael"},
"tags": [{"value": "Art", "label": "Art"}],
"items": []
},
{
"id": 1,
"title": "happy dayys",
"owner": {"id": "1", "username": "dillonraphael"},
"tags": [{"value": "Architecture", "label": "Architecture"}],
"items": []
},
]
В этом OP попытался отфильтровать данные, используя вложенный фильтр, который не работал:
const tagMoodboards = _moodboards.filter(mb => { return mb.tags.filter(t => t.value == name) });
Причина в том, что внутренний filter
возвращает array (правда), поэтому для внешнего массива он становится таким _moodboards.filter(mb => true)
, поэтому он печатает весь массив
Тогда есть аналогичная проблема
Как отфильтровать вложенный массив в javascript , где есть такие данные:
{
"list": [
{
"deviceId": "2a-d539-4031-9bfc-4a42f2f765cf",
"versions": [
{
"id": "764c20-a213-9235f4b553b3",
"createdTime": 1590361208034,
"files": [
{
"fileType": "VLAN"
},
{
"fileType": "STARTUPCONFIG",
}
],
"startupRunningStatus": "OUT_OF_SYNC",
"createdBy": "SCHEDULED"
},
{
"id": "9bd33-a45a-ed2fefc46931",
"createdTime": 1589972337717,
"files": [
{
"fileType": "VLAN",
},
{
"fileType": "STARTUPCONFIG",
},
{
"fileType": "RUNNINGCONFIG",
}
],
"startupRunningStatus": "IN_SYNC",
"createdBy": "SCHEDULED_FIRST_TIME"
}
]
}
]
}
и OP хотел отфильтровать данные, таким образом, что он должен возвращать только тот массив, где присутствует "fileType": "RUNNINGCONFIG" и "fileType": "STARTUPCONFIG"
Но в этом случае filter
внутри filter
кажется выполнить работу
let versionsData = obj.list[0].versions;
versionsData = versionsData.filter( versions => { return versions.files.filter( m => {
return m.fileType === "RUNNINGCONFIG" || m.fileType === "STARTUPCONFIG" }).length > 1 }
);
console.log(versionsData);
Во втором случае я чувствовал, что он должен был следовать тому же шаблону versionData = versionData.filter(versions => true)
, следовательно, возвращать весь массив.
Итак, мой вопрос в том, что именно мне здесь не хватает? Где я ошибаюсь?