2015-06-11 6 views
0

Мне нужно сделать по существу Vlookup (excel) или фильтр (если n> 1) по данным, которые я вытащил из PapaParse.Поиск/Фильтр по данным анализа папы

// 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

Так от this Я получил «просто хэш-он». Моя реализация выглядит немного по-другому (и, возможно, медленнее, потому что я не понимаю, что это хорошо). Но после синтаксического анализа я использую «ключ» поиска (в моем случае столбец [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;} 
} 
Смежные вопросы