我需要对从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]中排序。 (必须有更简单的方法,但是内置方式?)
我用标题解析了我的数据,所以我有一个对象数组而不仅仅是一个数组(但我可以改变它对我的用例来说并不重要)。
答案 0 :(得分:0)
所以从this我得到了#34;只需哈希吧#34;我的实现看起来有点不同(可能更慢,因为我不太了解那个好)。但是在解析之后,我对查找&#34; key&#34;进行了散列。 (在我的情况下,列[0])因为我知道我的skus是唯一的,所以我的代码可以这么简单(我实际上有一个标题行)。
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;}
}