我有一個物件陣列,我想將它們分組為一個陣列陣列,每個陣列有 10 個物件。
輸入:data = [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},....{100}]
輸出:groupedData = [ [{1},..{10}], [{11},...{20}], ... [{91}, ..{100}] ]
我已經嘗試過像這樣使用 lodash _groupBy
groupedData = _groupBy(data, 10)
但輸出是
undefined: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},....{100}]
uj5u.com熱心網友回復:
要實作您想要實作的目標,您應該使用 lodash 的 chunk 函式。chunk 函式使用給定長度的子陣列創建一個新陣列。參考Lodash Docs 的 chunk。
_.chunk([{1}, {2}, ..., {100}], 10)
uj5u.com熱心網友回復:
如果你想要 Vanilla JS 那么你可以試試這個
const data = [{1:1},{2:2},{3:3},{4:4},{5:5},{6:6},{7:7},{8:8},{9:9},{10:10},{1:1},{2:2},{3:3},{4:4},{5:5},{6:6},{7:7},{8:8},{9:9},{10:10},{1:1},{2:2},{3:3},{4:4},{5:5},{6:6},{7:7}];
const groupeData = (arr, groupCount) => {
const result = [];
let tempArr = [];
for (const obj of data) {
tempArr.push(obj);
if (tempArr.length === groupCount) {
result.push(tempArr);
tempArr = [];
}
}
if (tempArr.length !== 0) result.push(tempArr);
return result;
}
const groupedData = groupeData(data, 10);
console.log(groupedData); // Array(3) [ (10) […], (10) […], (7) […] ]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436817.html
標籤:javascript 数组 罗达什
上一篇:在php中獲取關聯陣列的最高價格
