#javascript #arrays #typescript #object
#javascript #массивы #машинописный текст #объект
Вопрос:
Я ищу решения для изменения структуры объекта, которые имеют несколько массивов объектов для прямого доступа к объекту.
консоль.журнал (значение.данные.сводка[0].данные)
Поскольку я не хочу получать доступ к массивам таким образом, поэтому я хочу изменить структуру своих данных, есть ли какой-нибудь способ добиться чего-то вроде объекта результата?
Таким образом, я могу напрямую получить доступ к вложенному массиву объектов?
Я хотел бы добиться чего-то подобного в результирующем объекте.
let value = {
"data":{
"summary":[
{
"code":"9280",
"data":[
{
"val1":"test1",
"val2":"CAD",
"val3":0,
},
{
"val1":"test2",
"val2":"USD",
"val3":0,
},
]
},
]
}
}
let result = {
"data": {
"code":"9280",
"summary":[
{
"val1":"test1",
"val2":"CAD",
"val3":0,
},
{
"val1":"test2",
"val2":"USD",
"val3":0,
},
]
}
}
Комментарии:
1. Очень неясно, чего вы хотите достичь. Ожидаемый результат, а также код, который вы написали, пытаясь его решить, помогут.
2. @LaurentS. Я подумал то же самое, но
let result
ниже есть блок.3. @app вы просматривали методы Array.prototype, такие как
.map()
,.reduce()
или уже пробовали цикл for?4. Обновил мой вопрос.
Ответ №1:
если вы хотите изменить значение, чтобы оно было результатом, вы можете сделать это таким образом
let value = {
"data":{
"summary":[
{
"code":"9280",
"data":[
{
"val1":"test1",
"val2":"CAD",
"val3":0,
},
{
"val1":"test2",
"val2":"USD",
"val3":0,
},
]
},
]
}
}
let result = {data:{
code:value.data.summary[0].code,
summary:[...value.data.summary[0].data]}};
console.log(result);
Ответ №2:
Вы могли бы присвоить объектам в массиве данных ключ:
let value = {
"data":{
"summary":[
{
"code":"9280",
"data":{
0: {
"val1":"test1",
"val2":"CAD",
"val3":0,
},
"sum2": {
"val1":"test2",
"val2":"USD",
"val3":0,
},
}
},
]
}
}
Вы могли бы сделать то же самое для сводного массива, но я не знаю, это ли то, что вы ищете. В качестве альтернативы, можно объединить сводный массив в один объект.
// Summary with keys
let value = {
"data":{
"summary": {
"sum1": {
"code":"9280",
"data":{
0: {
"val1":"test1",
"val2":"CAD",
"val3":0,
},
1: {
"val1":"test2",
"val2":"USD",
"val3":0,
}
}
}
}
}
}
// Summary as a single object
let value = {
"data":{
"summary": {
"code":"9280",
"data":{
0: {
"val1":"test1",
"val2":"CAD",
"val3":0,
},
"example": {
"val1":"test2",
"val2":"USD",
"val3":0,
}
}
}
}