169 похожих чатов

Всем привет. Подскажите как зациклить, чтобы вручную вложенность не прописывать? Нужно вернуть

массив если в дочернем workControl == intermediate

Массив
[
{
"id": 0,
"title": "Базовая часть",
"content": []
},
{
"id": 1,
"title": "Профильная часть",
"placeholder": "Профильная часть",
"content": [
{
"id": 2,
"title": "intermediate current",
"content": [
{
"id": 3,
"title": "intermediate current",
"content": [
{
"id": 4,
"title": "intermediate current",
],
"workControl": [
"intermediate",
"current"
],
"content": []
}
]
}
]
},
{
"id": 22,
"title": "нету",
"content": [
{
"id": 23,
"title": "нету",
"content": [
{
"id": 24,
"title": "нету",
"workControl": [],
"content": []
}
]
}
]
}
]
}
]

Код который сообразил

currentControl(){
let currentControl = [];
let arr = [];
if(toRaw(this.getSteps[4].formData) !== undefined){
currentControl = toRaw(this.getSteps[4].formData.content).map(part => {
part.content.filter(elem => {
if(elem.content.length){
console.log('elee', elem.title)
elem.content.filter(elem2 => {
if(elem2.content.length){
console.log('el2', elem2)
elem2.content.filter(elem3 => {
console.log('el3', elem3)
if(elem3.workControl.filter(control => {
console.log('control', control)
if(control == 'intermediate'){
arr.push(elem3)
}
}))
return []
})
return []
}
})
return []
}
})
});
console.log('dddd', currentControl)
console.log('arrrrr', toRaw(arr))
return arr
}
}

12 ответов

32 просмотра

что хочешь получить? результат какого вида? возможно это поможет подсказать быстрее, чем анализ кода

Roman-Abramovich Автор вопроса
Роман Бандурин
что хочешь получить? результат какого вида? возмож...

[ { "id": 4, "title": "intermediate current", "description": "ccccc", "placeholder": "zxczcx", "period": [ { "id": 6, "value": 6, "title": "6 недели" }, { "id": 4, "value": 4, "title": "4 недели" } ], "workControl": [ "intermediate", "current" ], "lectures": 0, "practice": 6, "homework": 0, "type": "practice", "content": [] } ]

Ты хочешь оставить только такие элементы, что где-то внутри в элементе есть intermediate===current?

Roman Abramovich
Да

type WorkControl = 'intermediate' | 'current' interface Item { workControl: WorkControl content: Item[] } function isCurrentDeep(item: Item) { if (item.workControl.includes('current')) return true if (item.content.length === 0) return false return item.content.some(nestedItem => isCurrentDeep(nestedItem)) } arr.filter(item => isCurrentDeep(item))

Roman Abramovich
Да

или тебе надо «дай мне все такие нижние элеметы, что workControl === current»?

Roman-Abramovich Автор вопроса
Roman-Abramovich Автор вопроса
Roman Abramovich
https://codepen.io/itjustalance/pen/bGzdmLm

🙂 потратил час своей жизни https://codepen.io/salmasov/pen/qBgdQxY

Roman-Abramovich Автор вопроса
Илья Салмасов
🙂 потратил час своей жизни https://codepen.io/sal...

хм, примерно такой вариант я видел с функцией внутри функции, но почемуто думал что можно в 3-4 строчки уложиться. Но видимо никак. Спасибо, помогли

Roman Abramovich
хм, примерно такой вариант я видел с функцией внут...

Если в computed делаешь такое вычисление, то еще надо результат скопировать

Roman-Abramovich Автор вопроса
Илья Салмасов
Если в computed делаешь такое вычисление, то еще н...

Засуну в tools.js и в computed буду вызывать тогда

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Карта сайта