1. 程式人生 > 其它 >js遞迴的一些操作

js遞迴的一些操作

//重新向新的數組裡面塞值
function renderListValue(arr, newarr) {
  for (let i = 0; i < arr.length; i++) {
    let obj = {}
    if (arr[i].leaf == true) {
      obj.budgetAmount = arr[i].value
      obj.typeId = arr[i].key
      newarr.push(obj)
    }
    if (arr[i].children && arr[i].children.length > 0) {
      renderListValue(arr[i].children, newarr)
    }
  }
  
return newarr } //遞迴賦值 function renderCode(arr, code, text) { for (let i = 0; i < arr.length; i++) { if (arr[i].code == code) { arr[i].value = text } if (arr[i].children && arr[i].children.length > 0) { renderCode(arr[i].children, code, text) } } return arr }
//根據id或者key取到父級 function findParent(data, code) { let result = null function setParent(data) { data.children.forEach((item, index) => { item.index = index item.parent = data if (item.code === code) { result = item } if (item.children && item.children.length) { setParent(item) } }) } data.forEach((item, index)
=> { item.index = index setParent(item) }) return result ? result.parent : null }