js 函数返回三个值,取值时反复被调用出错,

函数取值反复被调用出错

 
        const newArr = toRaw(data.importData)
       / /目的是检查 newArr数组 ,   并返回 三个值,ret.resultData , ret.rData , ret.vData
      //   自定义函数repeatCheckList   对 newArr 进行了处理
        const ret = repeatCheckList({  // 检查数据的函数
          key: data.notRepeatField, //函数要的参数
          newArr: newArr,         // 函数要的参数
          oldArr: data.oldData, // 函数要的参数
        })
      //  下面取函数返回的三个值  ret.resultData , ret.rData , ret.vData
        const rData = ()=>{ if(ret.rData){ return ret.rData } }
        const vData = ()=>{ if(ret.vData){ return ret.vData } }
        data.importData = ()=>{ if (ret.resultData) { return JSON.parse(JSON.stringify(ret.resultData)) } }
     
现在问题是,第一次取值是成功,第二次就出错了,
 newArr 数组发生了变化,函数运行失败
其实函数运行一次得到三个值就可以了,发现每取一次函数就运行一次,而因为newArr 发生了变化,函数就报错

怎么处理这种类似的问题

为什么最后给import data赋值为函数,它不是吗三个数据的来源吗?

第一种:把const改成let呢
第二种:const newArr = toRaw(data.importData)
let newDataImp = {...data.importData};
newDataImp = ()=>{ if (ret.resultData) { return JSON.parse(JSON.stringify(ret.resultData))}}

你在函数repeatCheckList内部,有尝试修改newArr的类型吗,比如newArr是一个数组,在函数内部尝试修改成对象这种,导致函数报错