Javascript 我需要一个函数,它搜索数组并返回最后一个字符串后面的最后一组数字?

Javascript 我需要一个函数,它搜索数组并返回最后一个字符串后面的最后一组数字?,javascript,arrays,Javascript,Arrays,我需要一个函数调用getLastNumbers,它搜索数组并返回最后一个运算符之后的最后一组数字 例如: [1, 1, 1, 1, 1, 1, "+", 2, 2, 2, 2, 2, 2, "*", 3, 3, 3, 3, 3, "-", 6, 6, 6, 6] Returns 6666 [1, 1, 1, 1, "+", 6, 6, 6, 6, 6, 6, "*", 9, 9, 9, 9, 9, "-", 6, 6, 6, 6, "+", 3, 3, 3] Returns 333 [7,

我需要一个函数调用getLastNumbers,它搜索数组并返回最后一个运算符之后的最后一组数字

例如:

[1, 1, 1, 1, 1, 1, "+", 2, 2, 2, 2, 2, 2, "*", 3, 3, 3, 3, 3, "-", 6, 6, 6, 6] Returns 6666

[1, 1, 1, 1, "+", 6, 6, 6, 6, 6, 6, "*", 9, 9, 9, 9, 9, "-", 6, 6, 6, 6, "+", 3, 3, 3] Returns 333

[7, "*", 7, "-", 6, "+", 3, "+", 6, "+", 3, 3, 3, 3, 3, "+", 6, "-", 5, 5, 5, 5, 5, 5, "*", 9, 9] Returns 99

[5, "*", 5] returns 5
为了澄清,我永远不知道用户可以输入多少数字或运算符

请参见下面我冗长的尝试:


function getLastNumber(arr){
let number = arr.filter(i => i === '*' || i === '/' || i === '+' || i === '-' ).length;

  let counter = 0;
  let arrayLength = arr.length;
  let lastOpIndex = [];

 for(let i = 0; i < arr.length; i++) {
   if(arr[i] === '*' || arr[i] === '+' ||arr[i] === '-' ||arr[i] === '/'){
     counter++;
     if (counter === number) {
       lastOpIndex.push(arr.indexOf(arr[i]));
     }
   }
 }

  let lastOpNum = parseInt(lastOpIndex.toString());
  let startNum = lastOpNum + 1;
  let mathNum = (arrayLength - lastOpNum) - 1;


  let finalArray = [];

  for(let i = startNum; i < arr.length; i++) {
    finalArray.push(arr[i]);
  }

  let strResult = finalArray.toString().split(',').join('');

  let finalResult = parseInt(strResult);

  return finalResult;


}



getLastNumber([1, "+", 3, 3, 3, 3, 3, "+", 6, "+", 9, "*", 6, 6, 6, 3, 6, 6, 6, "-", 5, "*", 9, 9, 9, 9, 9, 9, 9, '/', 6, 8, 9, 9, '*', 8, 8, 8, 7]);


由于问题仍然悬而未决,我将继续发表我的评论。我认为他们试图实现这一目标的方式有点复杂

这里是我的方法,只是把问题转过来,从最后一个索引开始,而不是从第一个索引开始。 一旦我找到一个操作符,我就中断循环,并以相反的顺序返回保存的值

函数getLastNumberRarr{ 设ret=[]; forlet i=arr.length-1;i>=0;i-{ ifarr[i]!=='*'和&arr[i]!='+'和&arr[i]!='-'和&arr[i]!='/'{ ret.pushar[i]; }否则{ 打破 } } 返回ret.reverse.toString; } loggetLastNumber[1,+,3,3,3,3,+,6,+,9,*,6,6,6,3,6,6,6,-,5,*,9,9,9,9,9,“/”,6,8,9,*,9,*,8,8,7]; loggetLastNumber[1,1,1,1,+,6,6,6,6,6,*,9,9,9,9,9,-,6,6,6,6,+,3,3]; loggetLastNumber[7,*,7,-,6,+,3,+,6,+,3,3,3,3,3,+,6,-,5,5,5,5,*,9,9]; console.loggetLastNumber[5,*,5] 函数过滤器编号{ 设a=arr.lastIndexOf*;//查找* 设b=arr.lastIndexOf+;//查找+ 设c=arr.lastIndexOf-;//查找- 设d=arr.lastIndexOf//;//查找/ 让ind=Math.maxa,b,c,d;//查找最大索引 console.logind; 设newarr=arr.spliceind+1,arr.length;//拼接阵列 console.lognewarr; 返回newarr; } 过滤器编号[1,1,1,1,1,1,+,2,2,2,2,*,3,3,3,3,3,3,3,6,6,6,6,6,1];
过滤器编号[1,1,1,1,1,1,+,2,2,2,2,*,3,3,3,3,3,/,3,6,6,6,6,6,6,1];如果你想接受一个答案,删除你的问题,或者如果没有正确回答,编辑它以澄清你的要求。这样它就不会再出现在无人应答的部分了。