[5, [[4, 3], 2, 1]]=>(5 - ((4 - 3) - 2 - 1))

Implement a function that can perform grouped subtraction on an array such as [5, [[4, 3], 2, 1]] as (5 - ((4 - 3) - 2 - 1)) and return the result. (eval cannot be used, recursion is recommended);

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 

const ary =  [5, [[4, 3], 2, 1], [[4, 3], 2, 1]];
function subtraction(arr){
  if(!Array.isArray(arr)) return arr;
  let res = 0;
  for(let i= 0; i< arr.length; i++){
    num = subtraction(arr[i]);
    if(i == 0){
      res = num;
    }else{
      res = res - num;
    }
  }
  return res
}
console.log(subtraction(ary))
// 数组[5,[[4,3],2,1]] => 字符串(5-((4-3)-2-1)) 
let str = JSON.stringify([5,[[4,3],2,1]]).replaceAll("[", "(").replaceAll("]", ")").replaceAll(",","-");
eval(str)

Guess you like

Origin blog.csdn.net/SeriousLose/article/details/127767675