整理されたダッシュボード インターフェイスに情報を表示するオンライン ツールを開発しています。CSV スプレッドシートからデータを取得し、CSV データ配列全体の 1 つのフィールドに応じて、それらを別の multiD 配列に分離しています。
これは私が試したことです:
// arr is the array that holds the entire CSV data
// inds is where I need the entries separated by industry (arr[i][0])
var indx = 0; // using to add new array to inds array
for(var i = 1; i < arr.length-1; i++){
if(arr[i][0] === arr[i-1][0]) {
if(! inds[indx] ) {
inds[indx] = []
} else {
inds[indx].push(arr[i]);
}
} else {
indx++;
}
}
基本的にこれが何をするか:
産業フィールドが前のエントリと同じ場合、それをインデックス の arr 配列にスローします。そうでない場合は、次の産業indx
の に 1 を追加します。indx
このソリューションの問題:
前の行が別の業界だったため、業界の 1 番目のエントリがスキップされarr[i-1][0]
、最後の業界がチェックされ、次の業界の 1 番目の行がスキップされます。
このスクリプトを再フォーマットするにはどうすればよいですか:
for/while がネストされている可能性があると考えていましたが、よくわかりません。私がロジックを考えている方法は次のとおりです
。csv の各行について、業界の列は同じですが、それぞれに投げますinds[index]
。または、 の同じ値で arr から行を抽出しますarr[i][0]
。
もっと簡単な解決策があると確信しており、それが私がここにいる理由です。私の考えが明確に伝われば幸いです。すべてのフィードバックに感謝します。
さらに明確にする必要がある場合は、コメントでお知らせください。