Я пытаюсь разделить этот массив на 2 или 3 части и застрял. Это то, что у меня есть до сих пор: если я использую одну из линий сращивания, она работает, но если я использую все для тестирования, то нет. Я хочу:
const re = /^(\+/\-\*)$/
let store1 = ["7", "1", "+", "9", "6"]
store2 = store1.splice(0, store1.indexOf(re));
// This does not work all at once, only if one line is uncommented
//store2 = store1.splice(0, store1.indexOf('+'));
//store2 = store1.splice(0, store1.indexOf('-'));
//store2 = store1.splice(0, store1.indexOf('*'));
//store2 = store1.splice(0, store1.indexOf('/'));
console.info(store1)
console.info(store2)
Я попробовал то, что разместил в коде, попробовал повернуть array.toStrings() и выполнить цикл, но пока не могу в этом разобраться.
Вы не разделяете массивы с помощью регулярных выражений. Вы можете разделить строки с помощью регулярного выражения.
каков ваш ожидаемый результат



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Учитывая, что формат «массива» выглядит как строка, возможно, будет проще проанализировать его как строку, используя слегка измененное регулярное выражение.
Чтобы преобразовать массив в строку без разделителей, используйте .join("")
const re = /(\+|\-|\*)/;
let store1 = ["7", "1", "+", "9", "6"];
console.info(store1.join("").split(re))
При необходимости вы можете затем использовать назначения деструктуризации (SO-ответ) для преобразования массива в отдельные переменные (при условии, что у вас есть только простой num op num):
let [ v1, op, v2 ] = [...store1.join("").split(re)]
Фрагмент:
const re = /(\+|\-|\*)/;
let store1 = ["7", "1", "+", "9", "6"];
let [ v1, op, v2 ] = store1.join("").split(re);
console.info(v1, op, v2);Кстати, вы можете просто использовать let [ v1, op, v2 ] = store1.join("").split(re);, не распределяя его в массив.
@NickParsons спасибо за совет — я впервые использовал это let [ .. ] для назначения нескольких переменных. Теперь вы говорите "в массив" это очевидно - не нужно конвертировать массив в массив. Та
Я ценю помощь @fdomn-m. Мне нужно будет потратить некоторое время на изучение использования регулярных выражений и того, как вы использовали разделение соединения для решения этой проблемы.
.join(separator) преобразует массив в строку, использование "" означает отсутствие разделителя. Регулярное выражение - это просто «один из + - или * в любой позиции», `\` присутствует, потому что в противном случае они имеют значения в регулярном выражении.
Я не уверен, что такое
array.toStrings(), но, возможно, вы имеете в видуstore1.join("").