Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2022, 20:15
Аспирант
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 59

Парсинг массива и обработка данных в JS коде. Как пройти ошибку?
Как пройти ошибку?
Есть задача: удаление из массива всех строк что идут выше трёх подряд идущих строк в конце которых есть знаки препинания (знаки препинания определены в массиве [[SYMBOLS]] )

Есть JS код для этого (его я привёл в конце этой темы). Кодом обрабатываю этот массив текста но получаю ошибку:
Код:
SyntaxError: Unexpected token Я in JSON at position 1

Сразу поясню 3 нюанса:
1) Многострочный список строк (массив) в моём интерпретаторе JS задаётся в виде оборачивания в [[]].
Для языка JS он является массивом (Массив - он же объект)
Например, вот так выглядит массив [[1AA]] (см. скрин ниже) текст тут дан как пример, поэтому текст может быть любым:
1аа.jpg


2) Вставить многострочный массив в JS код в таком виде (в виде строки) нельзя, так как тексты внутри [[1AA]] могут быть любые:
Код:
let text = `Я видел огненные знаки
Чудес, рожденных на заре
Я вышел — пламенные маки,
Сложить на горном алтаре.
Со мною утро в дымных ризах,
Кадило в голубую твердь,
И на уступах, на карнизах`;

3)Нужно определять только так :
Присваиваем переменной text массив [[1AA]]
Код:
let text = [[1AA]];
Как я пытаюсь решить эту задачу:
В коде Яваскрипта сначала делаю распарс с помощью JSON.parse преобразуя массив [[1AA]] в строку вот так:

let text = [[1AA]];
var qqq = JSON.parse("[" + text + "]");
let str = qqq.split(',');





А тут собственно весь JS код : )
let text = [[1AA]];
var qqq = JSON.parse("[" + text + "]");
let str = qqq.split(',');
const punct = [[SYMBOLS]];
const numStrWithPunctEnd = 3;
const arr = str.split('\n');
const index = arr.findIndex(function(n, i, a) {
  return this.every(m => punct.includes(a[i + m].slice(-1)));
}, [...Array(numStrWithPunctEnd).keys()]);
const result = index !== -1 ? arr.slice(index).join('\n') : str;
[[1AA]]=result;


При обработке всего приведённого выше JSкода я получаю ошибку, как её пройти?
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2022, 00:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 31,984

mik888em,
можно только гадать, что у вас в переменных и зачем нужен JSON.parse.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить ошибку в коде js& roni841 Общие вопросы Javascript 3 24.05.2014 06:16
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 11:29
Не понимаю JavaScript. Как сделать ожидание события загрузки данных? xintrea AJAX и COMET 7 01.06.2013 16:18
Как сделать парсинг данных в виде 1;2;3;4;5 maxcab Общие вопросы Javascript 3 10.05.2012 19:38
есть ли в js понятие частоты кадров, наподобие как во флэше? andrew_F Общие вопросы Javascript 8 01.05.2012 19:25