現在、私のデータは、次の形式のオブジェクトの長いリストを持つ配列です。
[
{ name: 'example' },
{ name: 'example' },
...
]
私がやろうとしているのは、このリストを指定された間隔20でオブジェクトの配列の配列に変換することです。
私はこのフォーマットが欲しい:
[
[
{ name: 'example' },
{ name: 'example' },
...18 more rows
],
[
{ name: 'example' },
{ name: 'example' },
...18 more rows
],
]
chartdataには初期形式のデータが含まれていますが、「newArray」で新しい形式を取得しようとしています。これを達成するために私は置きました:
let newArray = [];
let data = [];
chartdata.forEach((x, i) => {
if(i === chartdata.length - 1 ){
newArray.push(data)
data = []
}
if(i%20===0){
newArray.push(data)
data = []
}
data.push(x);
})
console.log('newArray',newArray)
私が理解していないことが2つあります。
コンソールログには以下が表示されます。
newArrayの最初のインデックスに空の配列があるのはなぜですか?
newArrayのインデックス4に19個の値しかないのはなぜですか?
最初の質問はかなり簡単に解決できますが、2番目の質問は修正方法がわかりません。誰か助けてもらえますか?
他のパッケージをプロジェクトに統合することにオープンである場合chunk
、Lodashの関数はまさにこの目的に役立つと思います:https://lodash.com/docs/4.17.15#chunk
コードは次のように単純になります(そして何が起こっているかという点で非常に明確になります):
const chunks = _.chunk(chartdata, 20);
一般に、配列で多くの作業を行うように思われるため、Lodashをプロジェクトに統合することを検討してください。ライブラリは、配列で実行する必要のある多くの操作を正確に対象としています。私は自分のプロジェクトでライブラリを数年間使用してきましたが、ライブラリの機能でカバーされていない操作に遭遇することはほとんどありませんでした。
最適化に関していくつかの提案がありますが、正直なところ、バンドルサイズに関しては、ライブラリ全体のインポートが問題になることはありませんでした。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加