У меня похожая задача была на работе! Я решал через метод reduce - получается довольно элегантно. Берешь массив цифр и reduce’ом проходишь по нему, на каждом шаге добавляя символ из второго массива. Примерно так: digits.reduce((acc, digit, index) => acc + (index > 0 ? symbols[index-1] + digit : digit), ''). Правда тут важно следить чтобы символов было на один меньше чем цифр, иначе может undefined попасть в строку.
А почему именно такой результат должен получиться? Просто интересно, как ты считал 5+15*8-6/3 = 128? По обычным правилам математики же должно быть другое значение из-за приоритета операций. Может нужно скобки добавлять или вычислять слева направо?
Чтобы объединить два массива, можно воспользоваться циклом. Пример функции:
function createExpression(digits, symbols) {
let result = digits[0].toString();
for(let i = 0; i < symbols.length; i++) {
result += symbols[i] + digits[i + 1];
}
return result;
}
Помни, что использовать eval() не рекомендуется для вычислений из-за безопасности, если это не просто учебный проект.