我有一個陣列如下:
let data =[
[
{
"Id": "110d611c-54e4-4593-a835-def0f34ed882",
"duration": 30,
"name": "burger",
"price": 10,
}
],
[
{
"Id": "edc241e9-5caf-4f0b-b6ea-6cf5fc57d260",
"duration": 10,
"name": "Cake",
"price": 5,
}
]
]
我正在嘗試洗掉第一個括號,如下所示:
let data =
[
{
"Id": "110d611c-54e4-4593-a835-def0f34ed882",
"duration": 30,
"name": "burger",
"price": 10,
}
],
[
{
"Id": "edc241e9-5caf-4f0b-b6ea-6cf5fc57d260",
"duration": 10,
"name": "Cake",
"price": 5,
}
]
我嘗試了很多解決方案,我嘗試過的最常見的一種是使用這種方式:
let newData = data[0]
但結果總是給我第一個嵌套陣列,如下所示:
[
{
"Id": "110d611c-54e4-4593-a835-def0f34ed882",
"duration": 30,
"name": "burger",
"price": 10
}
]
我嘗試使用將其轉換為字串,JSON.stringify()然后通過執行洗掉括號
JSON.stringify(data).substring(1, JSON.stringify(data).length - 1);
但是當我決議它時,我收到了這個錯誤:
SyntaxError: JSON Parse error: Unable to parse JSON string
我真的被困在什么最好的方式來完成它。提前致謝。
uj5u.com熱心網友回復:
您需要每個嵌套陣列的第一個元素,而不是外部陣列的第一個元素。所以使用map().
let data = [
[{
"Id": "110d611c-54e4-4593-a835-def0f34ed882",
"duration": 30,
"name": "burger",
"price": 10,
}],
[{
"Id": "edc241e9-5caf-4f0b-b6ea-6cf5fc57d260",
"duration": 10,
"name": "Cake",
"price": 5,
}]
];
let newData = data.map(el => el[0]);
console.log(newData);
uj5u.com熱心網友回復:
洗掉外部括號將導致無效的 javascript 物件。
獲取包含您可以使用的所有物件的單個陣列 flatMap
data.flatMap(x => x)
來源:https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap
uj5u.com熱心網友回復:
您想要的結果無效,相反,您可以使用flat獲取物件陣列:
data.flat()
let data = [
[
{
Id: "110d611c-54e4-4593-a835-def0f34ed882",
duration: 30,
name: "burger",
price: 10,
},
],
[
{
Id: "edc241e9-5caf-4f0b-b6ea-6cf5fc57d260",
duration: 10,
name: "Cake",
price: 5,
},
],
];
const result = data.flat();
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/339395.html
標籤:javascript 数组
