我需要在javascript中計算每個子陣列的平均分數。為此,我的目標是為陣列[i][j]做一個雙回圈。但問題是每個子陣列的鍵名或索引陣列高于 18k,所以我的回圈完全溢位!!
通過“我的回圈完全溢位”。我是說:
for (let i = 0; i < array.length; i ) {
console.log(array[i])
};
/*
will log =>> nothing stack overflow, stop your code before you start
to smell smoke
*/
為此,我需要更改密鑰名稱或將其取出,但我不知道如何。有什么提示嗎??或指導方針??
謝謝
下面是我輸入的小例子(我有 1 個用戶或多或少有 4000 個輸入):
當前資料:
不知道怎么表達!!


我不知道如何表示影像中顯示的結構......是這樣的
const results =
{
"18456": [
{id: 1767, data: "blabla", score: 50, date:'2022-08-02T12:25:00.000Z'},
{id: 1766, data: "blabla", score: 70, date: '2022-08-02T12:24:00.000Z'},
{id: 1765, data: "blabla", score: 68, date: '2022-08-02T12:23:00.000Z'},
{id: 1764, data: "blabla", score: 13, date: '2022-08-02T12:22:00.000Z'}
],
"19212": [
{id: 1763, data: "blabla", score: 20, date: '2022-07-15T12:25:00.000Z'},
{id: 1762, data: "blabla", score: 75, date: '2022-07-15T12:25:00.000Z'},
{id: 1761, data: "blabla", score: 80, date: '2022-07-15T12:25:00.000Z'},
{id: 1760, data: "blabla", score: 53, date: '2022-07-15T12:25:00.000Z'}
],
"19219": [
{id: 1763, data: "blabla", score: 100, date: '2022-07-07T12:25:00.000Z'},
{id: 1762, data: "blabla", score: 69, date: '2022-07-07T12:25:00.000Z'},
{id: 1761, data: "blabla", score: 32, date: '2022-07-07T12:25:00.000Z'},
{id: 1760, data: "blabla", score: 58, date: '2022-07-07T12:25:00.000Z'}
]
}
預期輸出:
result = [
{averageScore: 50.24%, date:'2022-08-02T12:25:00.000Z'},
{averageScore: 57%, date: '2022-07-15T12:25:00.000Z'},
{averageScore: 64.75%, date: '2022-07-07T12:25:00.000Z'},
]
非常感謝!
uj5u.com熱心網友回復:
如果您當前的資料如下所示
const arrayLikeObj =
{
'18456': [
{ id: 1767, data: "blabla", score: 50, date: '2022-08-02T12:25:00.000Z' },
{ id: 1766, data: "blabla", score: 70, date: '2022-08-02T12:24:00.000Z' },
{ id: 1765, data: "blabla", score: 68, date: '2022-08-02T12:23:00.000Z' },
{ id: 1764, data: "blabla", score: 13, date: '2022-08-02T12:22:00.000Z' }
],
'19212': [
{ id: 1763, data: "blabla", score: 20, date: '2022-07-15T12:25:00.000Z' },
{ id: 1762, data: "blabla", score: 75, date: '2022-07-15T12:25:00.000Z' },
{ id: 1761, data: "blabla", score: 80, date: '2022-07-15T12:25:00.000Z' },
{ id: 1760, data: "blabla", score: 53, date: '2022-07-15T12:25:00.000Z' }
],
'19219': [
{ id: 1763, data: "blabla", score: 100, date: '2022-07-07T12:25:00.000Z' },
{ id: 1762, data: "blabla", score: 69, date: '2022-07-07T12:25:00.000Z' },
{ id: 1761, data: "blabla", score: 32, date: '2022-07-07T12:25:00.000Z' },
{ id: 1760, data: "blabla", score: 58, date: '2022-07-07T12:25:00.000Z' }
]
};
您可以使用它來獲得所需的結果。
// Extract only values
const result = Object.values(arrayLikeObj).map(m => {
return {
// Iterate over every nested object and get the mean of included scores.
averageScore: m.reduce((acc, obj) => {
return acc obj.score;
}, 0) / m.length '%',
// Get first date of nested object.
date: m.find(f => f).date
}
});
測驗部分:
const arrayLikeObj = {
'18456': [{
id: 1767,
data: "blabla",
score: 50,
date: '2022-08-02T12:25:00.000Z'
},
{
id: 1766,
data: "blabla",
score: 70,
date: '2022-08-02T12:24:00.000Z'
},
{
id: 1765,
data: "blabla",
score: 68,
date: '2022-08-02T12:23:00.000Z'
},
{
id: 1764,
data: "blabla",
score: 13,
date: '2022-08-02T12:22:00.000Z'
}
],
'19212': [{
id: 1763,
data: "blabla",
score: 20,
date: '2022-07-15T12:25:00.000Z'
},
{
id: 1762,
data: "blabla",
score: 75,
date: '2022-07-15T12:25:00.000Z'
},
{
id: 1761,
data: "blabla",
score: 80,
date: '2022-07-15T12:25:00.000Z'
},
{
id: 1760,
data: "blabla",
score: 53,
date: '2022-07-15T12:25:00.000Z'
}
],
'19219': [{
id: 1763,
data: "blabla",
score: 100,
date: '2022-07-07T12:25:00.000Z'
},
{
id: 1762,
data: "blabla",
score: 69,
date: '2022-07-07T12:25:00.000Z'
},
{
id: 1761,
data: "blabla",
score: 32,
date: '2022-07-07T12:25:00.000Z'
},
{
id: 1760,
data: "blabla",
score: 58,
date: '2022-07-07T12:25:00.000Z'
}
]
};
// Extract only values
const result = Object.values(arrayLikeObj).map(m => {
return {
// Iterate over every nested object and get mean of them.
averageScore: m.reduce((acc, obj) => {
return acc obj.score;
}, 0) / m.length '%',
// Get first date of nested object.
date: m.find(f => f).date
}
});
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/514856.html
