Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с поиском по csv, пожалуйста (https://javascript.ru/forum/misc/76123-pomogite-s-poiskom-po-csv-pozhalujjsta.html)

Vlad777 07.12.2018 13:43

Nexus,
[{"index":"","score":"undefined,undefined"},{"index ":"1","fio":"Прудников Сергей Анатольевич","inn":"672400114230","scor e":"2308,97","sro":"Ассоциация МСРО \"Содействие\" - Ассоциация \"Межрегиональная саморегулируемая организация арбитражных управляющих \"Содействие\""},{"index":"2","fio":"О чинников Андрей Валентинович","inn":"312000213769","sc ore":"1651,41","sro":"Союз \"СРО АУ СЗ\" - Союз \"Саморегулируемая организация арбитражных управляющих Северо-Запада\""},{"index":"3","fio":"Самсон в Вячеслав Алексеевич","inn":"521000170811","score" :"1629,36","sro":"САУ \"СРО \"ДЕЛО\" - Союз арбитражных управляющих \"Саморегулируемая организация \"ДЕЛО\""},{"index":"4","fio":"Овчинни ов Игорь Евгеньевич","inn":"575300927883","score" :"1562,82","sro":"СРО \"ААУ \"Паритет\" - Саморегулируемая организация \"Ассоциация арбитражных управляющих \"Паритет\""},{"index":"5","fio":"Гор н Игорь Владимирович","inn":"702000175677","sc ore":"1524,94","sro":"Ассоциация МСОПАУ - Ассоциация \"Московская саморегулируемая организация профессиональных арбитражных управляющих\""},{"index":"6","fio":"С колов Сергей Алексеевич","inn":"222202124554","score" :"1522,30","sro":"ААУ \"СЦЭАУ\" - Ассоциация арбитражных управляющих \"СИБИРСКИЙ ЦЕНТР ЭКСПЕРТОВ АНТИКРИЗИСНОГО УПРАВЛЕНИЯ\""},{"index":"7","fio":"Ле едев Сергей Викторович","inn":"540785176750","score" :"1502,68","sro":"ПАУ ЦФО - Ассоциация \"Саморегулируемая организация арбитражных управляющих Центрального федерального округа\""},{"index":"8","fio":"Кузнец в Дмитрий Юрьевич","inn":"615501437890","score":"1452 ,46","sro":"Ассоциация МСРО \"Содействие\" - Ассоциация \"Межрегиональная саморегулируемая организация арбитражных управляющих \"Содействие\""},{"index":"9","fio":"О уфриенко Юрий Вячеславович","inn":"166012742111","sc ore":"1305,57","sro":"ААУ \"ГАРАНТИЯ\" - Ассоциация арбитражных управляющих \"ГАРАНТИЯ\""]

я с вашего разрешения скопировал только часть.
там 6500 записей

Vlad777 07.12.2018 13:46

laimas,
согласен со всем.

но кода от вас = помощи так и нет.
абидно однако

laimas 07.12.2018 13:53

Цитата:

Сообщение от Vlad777
но кода = помощи так и нет

Сначала помогите самому себе же - думайте. Хотите оптимизации? Так оптимизация в вашем случае, это иметь на сервере не файл, а загруженный на сервер CSV загрузить сразу в базу, движки баз данных это могут делать слету. А в базе данные будут проиндексированы, и что-то найти из 6500 и более в индексе и вернуть клиенту, это для сервера как раз плюнуть. Вместо этого вы нагружаете клиента вяской хренью. Вот ваша оптимизация. Хотя бы из файла данные перепаковали сразу в нужный формат на сервере, и клиенту будет гораздо легче.

Ну так у вас вижу гонора под саму завязку, оптимизация для вас, это клиент разберется. В чем вам помочь, написать готовое для копирования и потом вы это будет считать лучшим решением вопроса? Это не помощь, а подстава.

Vlad777 07.12.2018 13:57

laimas,
я смотрю вы прошли суровую школу самообучения. никогда ни у кого не просили помощи. так только - направления куда лететь...
уважаю.
не ценю.
прошу покинуть мой вопрос. т.к. добрыми пожеланиями знаете сыт не будешь

Nexus 07.12.2018 14:02

Vlad777,я с laimas согласен, этим должен сервер заниматься.
new Promise(function(resolve, reject) {
    $.ajax({
        url: 'au.csv',
        dataType: 'text',
        success: resolve,
        error: reject
    });
}).then(function(response) {
    const CELL_DELIMITER = ',';

    return response.split(/\r?\n|\r/).map(function(row) {
        const cells = row.split(CELL_DELIMITER).map(function(value) {
            return (value || '').trim();
        });

        return {
            index: cells[0],
            fio: cells[1],
            inn: cells[2],
            score: cells[3] + ',' + cells[4],
            sro: cells[5]
        };
    });
}).then(function(data) {
    const getFirstChar = function(string) {
        return (string || '').substr(0, 1).toLowerCase();
    };

    const indexOfNames = {};
    data.forEach(function(person, key) {
        const firstChar = getFirstChar(person.fio);
        if (!firstChar)
            return;

        (indexOfNames[firstChar] || (indexOfNames[firstChar] = [])).push({
            name: person.fio.toLowerCase(),
            key: key
        });
    });

    return function(name) {
        name = name.toLowerCase();
        const firstChar = getFirstChar(name);
        if (!indexOfNames[firstChar])
            return [];

        const response = [];
        indexOfNames[firstChar].forEach(function(item) {
            if (item.name.indexOf(name) < 0)
                return;

            response.push(data[item.key]);
        });


        return response;
    };
}).then(function(search) {
    console.log(search('Прудников'));
});

Vlad777 07.12.2018 14:15

Nexus,
так я тоже с ним в этом вопросе написал же что согласен.
Здесь и сейчас, на моем уровне мне нужна была конкретная помощь, а не высокие рассуждения.... пусть и правильные

Теперь что касается моего вопроса.
Да пришел объект, двойной правда, содержащий все данные по требуемому челу.
Сейчас проверю на однофамильцев.
Если можете не уходите далеко, плиз

Vlad777 07.12.2018 14:19

Nexus,
ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ!!!

ВЫ ЛУЧШИЙ!!!

Остальным учиться!

Вопрос закрыт.

Роман Андреевич 10.12.2018 12:05

Ну да, гонора много))))))))))) Лень думать


Часовой пояс GMT +3, время: 07:36.