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 ответов

96 просмотров

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

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
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 буду вызывать тогда

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Oh sorry did you want it in Gunter's chains?
Martin Rys
15
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта