js原生代码操作数组

问题遇到的现象和发生背景

js输入一个init数组,数组里只有数字,数字代表秒数,要求将数组内的元素逐个按秒数间隔打印出来

问题相关代码,请勿粘贴截图
    var arr = ['7', '5', '3', '1', '3']
    function timeArr(arr) {
        arr.forEach((i, v) => {
            setTimeout(() => {
                // console.log(arr[v]);
                console.log(i);
            }, i* 1000)
        })
    }
    timeArr(arr)
运行结果及报错内容

一秒时打印1三秒时打印3依次到7

我的解答思路和尝试过的方法
我想要达到的结果

按数组顺序7秒时打印7过五秒后再打印5依次打印


      var i = 0;
      var arr = ["7", "5", "3", "1", "3"];
      function timeArr(arr) {
        setTimeout(() => {
          console.log(arr[i]);
          i++;
          i >= arr.length ? null : timeArr(arr, i);
        }, arr[i] * 1000);
      }
      timeArr(arr);