1

PapaParse から取得したデータに対して、基本的に Vlookup (Excel) またはフィルター (n > 1 の場合) を実行する必要があります。

// I know this is not asynchronous...
function filteredData(err,filterkey,data,wantedColumn) {
    if (err) console.error(error);
    t = [];
    for (i=0;i< data.length;i++;) {
        if (data[i][0] == filterkey) t[t.length] = data[i][wantedColumn];
    }
    return t;
}

キーをチェックするたびにすべてのデータを調べるよりも、より迅速な方法はありますか? 私のデータは私のキーの列 [0] にソートされています。(もっと簡単な方法はたくさんあるはずですが、組み込みの方法はありますか?)

ヘッダーを使用してデータを解析したため、単なる配列ではなくオブジェクトの配列が得られました (ただし、ユース ケースに不可欠ではないことを変更できます)。

4

1 に答える 1

0

したがって、これから「ハッシュするだけ」になりました。私の実装は少し異なって見えます (そして、私はそれをよく理解していないため、おそらく遅くなります)。しかし、解析後、ルックアップ「キー」をハッシュします (私の場合は column[0])。自分の sku が一意であることがわかっているので、コードはこのように単純になります (実際にはヘッダー行があります)。

skudata = baby.parse(data,{header:false});
for (i=1;i<skudata.data.length;i++){
    skuhash[skudata.data[i][0]] = i;
}

次に、フィルタリング/ルックアップしたいときは、これを行うだけです:

if (skuhash.hasOwnProperty(sku)) {
    skuloc = skuhash[sku];
    if (skudata.data[skuloc][col] == key) { return true;}
}
于 2015-06-12T04:27:57.623 に答える