Javascript 角度:使用角度删除obj中的某些属性

Javascript 角度:使用角度删除obj中的某些属性,javascript,angularjs,foreach,Javascript,Angularjs,Foreach,这是我的数据: $scope.datas = { "name": "000", "id" : 1, "type" : "record" "children": [ {name:111,id:2,children:[ {name:444,id:5,children:[]} ]} {name:222,id:3,children:[]} {name:333,id:4,ch

这是我的数据:

$scope.datas = {
      "name": "000",
      "id" : 1,
      "type" : "record"
      "children": [
        {name:111,id:2,children:[
          {name:444,id:5,children:[]}
        ]}
        {name:222,id:3,children:[]}
        {name:333,id:4,children:[]}
      ]
    }
deleteNode = (node,id) ->
    if node.id == id
      $timeout ->
        console.log 'findNode',node
        node = null
        return
    if node.children
      for rows,i in node.children
        if rows.id == id
          $timeout ->
            console.log 'findNode',rows
            rows = null
        else
          deleteNode(rows,id)
这是我的删除功能:

$scope.datas = {
      "name": "000",
      "id" : 1,
      "type" : "record"
      "children": [
        {name:111,id:2,children:[
          {name:444,id:5,children:[]}
        ]}
        {name:222,id:3,children:[]}
        {name:333,id:4,children:[]}
      ]
    }
deleteNode = (node,id) ->
    if node.id == id
      $timeout ->
        console.log 'findNode',node
        node = null
        return
    if node.children
      for rows,i in node.children
        if rows.id == id
          $timeout ->
            console.log 'findNode',rows
            rows = null
        else
          deleteNode(rows,id)
我需要在我的
$scope.data

执行此函数后,
deleteNode($scope.datas,5)

它确实找到了正确的obj,但是
$scope.data
没有改变,为什么

找到答案后,我将
deleteNode
函数更改为


尝试在对对象进行更改后返回该对象,即

deleteNode = (node,id) ->
    if node.id == id
      $timeout ->
        console.log 'findNode',node
        node = null
         // return the node 
        return node;
    if node.children
      for rows,i in node.children
        if rows.id == id
          $timeout ->
            console.log 'findNode',rows
            rows = null
            // return the node 
            return node;
        else
          deleteNode(rows,id)
尝试使用

deleteNode = (node,id) ->
 if node.id == id
   $timeout ->
     console.log 'findNode',node
     node = null
     $timeout(angular.noop)
    return
if node.children
  for rows,i in node.children
    if rows.id == id
      $timeout ->
        console.log 'findNode',rows
        rows = null
        $timeout(angular.noop)
    else
      deleteNode(rows,id)