我對在Javascript中做foreach陣列到陣列物件感到非常困惑,我已經做了很多關于Javascript中foreach物件的研究,我嘗試了很多方法,但沒有任何效果。我想實作的是JSON資料,就像這樣:
[
{
"name": "First Data"。
"資料": [
{
"y": 95,
"total":100,
"md": "1",
"name": "National",
"drillup" : 'level0',
"drilldown" : "3",
"next" : "level2".
}
]
}
,{
"name": "第二資料"。
"資料": [
{
"y": 95,
"total":100,
"md": "1",
"name": "National",
"drillup" : 'National" ,
"drilldown" : "3",
"next" : "level2".
}
]
}
我試著根據我的一些研究結果來做foreach,但結果并不像我想要的那樣,也不像我試圖實作的那樣。 下面是我嘗試的腳本:
dataFirstSecond = await informationModel.getdata()。
Object.entries(dataRegularSecondary)。 forEach(entry => {
const [key, value] = entry;
returnData[key] = [
{
name: value.name,
data: [{
y: value.y,
total: value.total_ada,
next: 'level_2',
drilldown: true,
}]
}]
});
這是我試過的腳本的結果或輸出 :
{
"0"/span>: [
{
"name": "First Data"。
"資料": [
{
"y": 22.973,
"total": 17,
"next": "level_2",
"drilldown": true。
}
]
}
],
"1"/span>: [
{
"name": "第二資料"。
"資料": [
{
"y": 5.4054,
"total": 4,
"next": "level_2",
"drilldown": true。
}
]
}
]
}
有人能幫助我實作我想要的資料嗎?
uj5u.com熱心網友回復:
returnData[key] = [{ ... }]應該只是returnData.push({ ... }),并確保returnData是一個陣列(例如,returnData = [])
uj5u.com熱心網友回復:
如果函式informationModel.getdata();回傳一個Object,你可以使用方法JSON.stringify(Object)來輕松轉換和Object到JSON。例如,你可以嘗試將這個Object轉換為一個String,然后將String投到JSON。
let JSONString = JSON. stringify(informationModel.getdata()) 。
let JSON_Object = JSON.parse(JSONString)。
uj5u.com熱心網友回復:
如果dataRegularSecondary是一個陣列而不是一個物件,你可以使用map:
dataRegularSecondary.map(value => /span> {
return {
name: value.name,
data: [{
y: value.y,
total: value.total_ada,
next: 'level_2',
drilldown: true,
}]
}
}
uj5u.com熱心網友回復:
你的問題是如何將陣列forEach到陣列物件。那么這意味著dataRegularSecondary是一個陣列,對嗎?Object. entries回傳一個鍵值對的陣列。如果你將一個陣列傳遞給該方法,它將回傳作為鍵的索引和作為值的專案。
const arr = ['hello'/span>, 'world'/span>]。
Object.entries(arr); // [['0', 'hello'], ['1', 'world']]
跳過Object. entries,直接使用dataRegularSecondary進行forEach。
至于你的輸出,看起來returnData也是一個物件。請確保它是一個陣列,然后將資料推送到陣列中。
dataRegularSecondary.forEach(value => {
returnData.push({
name: value.name,
data: [{ {
y: value.y,
total: value.total_ada,
next: 'level_2',
drilldown: true,
}],
});
});
或者你也可以使用map。
const returnData = dataRegularSecondary. map(value => ({
name: value.name,
data: [{
y: value.y,
total: value.total_ada,
next: 'level_2',
drilldown: true,
}],
}));
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/312341.html
標籤:
