Здесь вы можете найти очень хорошую статью от Microsoft Employee: Изменение размера изображений с сервера с использованием WPF / WIC вместо GDI + , в котором предлагается использовать WPF вместо GDI +.
В любом случае, в конце он утверждает следующее:
Я связался с командой WPF, чтобы получить окончательное слово о том, является ли это поддерживается. К сожалению, это не так, и соответственно обновляется документация. Я извиняюсь за любую путаницу, которая может быть вызвана. Мы смотрим на способы сделать эту историю более приемлемой в будущем.
blockquote>Таким образом, WPF также не поддерживается в веб-приложениях, и я считаю, что: -S
вам понадобится 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)