Как объединить два массива в JavaScript для создания математического выражения

Создание вычислительного выражения из двух массивов

Привет всем! Столкнулся с интересной задачей и нужна помощь.

У меня есть два массива:

var digits = [5, 15, 8, 6, 3]
var symbols = ['+', '*', '-', '/']

Мне нужно создать функцию, которая будет чередовать элементы из этих массивов так, чтобы получилось математическое выражение: 5+15*8-6/3 = 128

То есть операторы должны располагаться между числами из первого массива. Как это лучше всего реализовать в JavaScript?

Заранее спасибо за помощь!

У меня похожая задача была на работе! Я решал через метод 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() не рекомендуется для вычислений из-за безопасности, если это не просто учебный проект.