Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Вывести нужные данные из массива (https://javascript.ru/forum/jquery/83278-vyvesti-nuzhnye-dannye-iz-massiva.html)

face2005 07.11.2021 10:40

Вывести нужные данные из массива
 
Добрый день! создал массив данных из Exel файла:
/* set up XMLHttpRequest */
        var url = "datafile.xlsx";
        var oReq = new XMLHttpRequest();
        oReq.open("GET", url, true);
        oReq.responseType = "arraybuffer";

        oReq.onload = function(e) {
            var arraybuffer = oReq.response;

            /* convert data to binary string */
            var data = new Uint8Array(arraybuffer);
            var arr = new Array();
            for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
            var bstr = arr.join("");

            /* Call XLSX */
            var workbook = XLSX.read(bstr, {
                type: "binary"
            });

            /* DO SOMETHING WITH workbook HERE */
            var first_sheet_name = workbook.SheetNames[0];
            /* Get worksheet */
            var worksheet = workbook.Sheets[first_sheet_name];
            
            console.log(XLSX.utils.sheet_to_json(worksheet, {
                raw: true
            }));
        }

        oReq.send();


в консоли получаем такую картину:
https://prnt.sc/1ym6ero

Подскажите, как вывести данные по одному параметру, например "Порог сделок"?

voraa 07.11.2021 11:56

Что значит "вывести"? Просто на консоль?
Можно так
console.log(XLSX.utils.sheet_to_json(worksheet).ma p(o => o['ПОРОГ СДЕЛОК']))

face2005 07.11.2021 12:22

Цитата:

Сообщение от voraa (Сообщение 541265)
Что значит "вывести"? Просто на консоль?
Можно так
console.log(XLSX.utils.sheet_to_json(worksheet).ma p(o => o['ПОРОГ СДЕЛОК']))

Спасибо, но вызывает ошибку..

Uncaught SyntaxError: missing ) after argument list

face2005 07.11.2021 12:24

там не полный вопрос, вывести где ПОРОГ СДЕЛОК - До 10

voraa 07.11.2021 12:55

Цитата:

Сообщение от face2005
Спасибо, но вызывает ошибку..

Uncaught SyntaxError: missing ) after argument list

Я не знаю, почему это сайт иногда пробелы ставит, где ему вздумается. У меня в редакторе пробела нет
map должно быть без пробела

Цитата:

Сообщение от face2005
там не полный вопрос, вывести где ПОРОГ СДЕЛОК - До 10

Правильно заданный вопрос - половина ответа.
Уж спросите сразу все, что нужно.

console.log(XLSX.utils.sheet_to_json(worksheet).fi lter(o => o['ПОРОГ СДЕЛОК'] == 'до 10'))

И я не понимаю, почему этот гребанный сайт поставил пробел в filter !!!

face2005 07.11.2021 13:23

Цитата:

Сообщение от voraa (Сообщение 541268)
console.log(XLSX.utils.sheet_to_json(worksheet).fi lter(o => o['ПОРОГ СДЕЛОК'] == 'до 10'))

Круто, спасибо... Извините а вот по двум параметра я дописал, что-то не хавает.. наверное без стрелочной функции нужно?

console.log(XLSX.utils.sheet_to_json(worksheet).filter( 
            (porog, opf) => 
            (porog['СИСТЕМА НАЛОГООБЛОЖЕНИЯ'] == 'Единый налог • Группа 3', opf['ОПФ'] == 'ООО' )
            ));

voraa 07.11.2021 13:42

Зачем параметры porog, opf?
Там должен быть просто параметр - элемент массива, тот самый объект у которого есть все это свойства
console.log(XLSX.utils.sheet_to_json(worksheet).filter(
            o =>  o['СИСТЕМА НАЛОГООБЛОЖЕНИЯ'] == 'Единый налог • Группа 3' && o['ОПФ'] == 'ООО'  ));

face2005 07.11.2021 14:10

Спасибо огромное! Удачи Вам!

Aetae 07.11.2021 16:28

voraa, ну потому что код в соответствующий тег заключать надо, не бывает таких длинных слов, вот он и рубит чтоб не мусорил.)

face2005, если подключить lodash можно filter красивее делать:
console.log(_.filter(XLSX.utils.sheet_to_json(worksheet), {
  'СИСТЕМА НАЛОГООБЛОЖЕНИЯ': 'Единый налог • Группа 3',
  'ОПФ': 'ООО' 
}));
:)

face2005 07.11.2021 18:39

Цитата:

Сообщение от Aetae (Сообщение 541272)
если подключить lodash можно filter красивее делать

Спасибо!


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