ユーザーが提供する行数と列数に基づいてデータをフィルタリングする必要があります。角度コントローラのキーと値を配列にプッシュする方法
特定の場所からExcelファイルを読み取った後、コントローラ上のデータを取得していますが、Excelに複数のシートが含まれている可能性があります。シート名はドロップダウンで表示されます。
私は、行が列が定義されるまで値だけを持つように、列を通って来るヘッダ名に基づいて行データをフィルタリングしたいと思います。現在、私は行全体の値を取得しています。
私はこのようなロジックを書いていますが、これは機能しません。
var rowData=[];
for(var i=0;i<headerNames.length;i++){//headerNames contains column names
for(var j=0;j<data.length;j++){//data contains the rows data
for(var keyName in data[j])
if(angular.equals(keyName,headerNames[i])){
rowData.push({'keyName':data[j][keyName]})//I want only the key,values which matches the column names. I want to set the keyName value as array key but I am not getting its value instead it is coming like keyName:18
}
}
}
}
コードにプランカを追加する。 http://plnkr.co/edit/28Z44xDBug7nFCQnKZJL?p=preview
私はUIでデータをフィルタリングし、ユーザーの入力ごとに行と列のデータのみを取得できます。 しかし、コントローラで同じデータが必要なので、MongoDbに保存することができます。列の入力ごとに行データをフィルタリングしたい。だから、私は列が定義されるまで行データを取得するだけです。
データをフィルタリングして行の値をスプライスして、行iで定義されている列番号までの値を持たせることをお勧めします。たとえば、ユーザーが4行5列を入力した場合、私の行Dataには5列目までの値と5行目までの値のみをとり、配列からすべての値を取り除くことができます。私のコードでは現在、キー値を配列キーとして設定することができません。
この問題を解決するのを手伝ってください。
こんにちは、お返事ありがとうございました。私はあなたのプランナーを実行しますが、現在rowData:[0:{ageDuration:18}; 1:{ageDuration:19}、2:{ageDuration:20}などの値を取得しています。行データは定義された列番号まで来なければなりません。その後、第1インデックスの第2行では、データはそのようになるはずです。それはデータオブジェクトで同じように来ていますが、私はそこから列のデータを削除する必要がありますが、それはヘッドネームに存在しません –
Ok、スニペットとプランナーを更新しました。私はその結果がどうなるかをプリントアウトしました。しかし、私はあなたが欲しいものを手に入れているかどうかわかりません。入力と予想される出力の例を私に示してもらえますか? – KungWaz