вам понадобится Array.reduce () , чтобы сгруппировать объекты с одинаковой меткой:
var pages = [{
name: "page1",
list: {
fields: [{
name: "sHist",
label: "Range",
type: "long",
searchable: false
},
{
name: "sFuture",
label: "Range",
type: "long",
searchable: false
},
{
name: "ordersinPage1",
label: "Orders",
type: "long",
searchable: false
}
]
}
},
{
name: "page2",
list: {
fields: [{
name: "needs",
label: "Needs",
type: "long",
searchable: false
},
{
name: "fulfil",
label: "Fulfill",
type: "long",
searchable: false
},
{
name: "ordersinPage2",
label: "Orders",
type: "long",
searchable: false
}
]
}
}
]
const result = pages.map(page =>
page.list.fields.reduce((all, curr) => {
const ndx = all.findIndex(e => e.label === curr.label); // look for the current element in the list
if (ndx > -1) {
// if found, concat the names in an array
// array.flat() will transform this : [["a"], "b"] into : ["a", "b"]
all[ndx].name = [all[ndx].name, curr.name].flat();
} else {
// otherwise, edit the name property to become an array and push it.
all.push({ ...curr, name: [curr.name]})
}
return all;
}, [])
)
console.log(result)
Можно также попробовать javacurses.
Согласно Разговору о Коде доктора Dobb это является милым.
Так как Вы говорите о полях, подсказки повреждения и так далее, я предполагаю, что Вы означаете создавать основанное на тексте приложение работы с окнами. Таким образом, я предполагаю, что Вы ищете что-то подобное Ncurses, но в Java. Возможно, charva мог помочь Вам.