2013-05-17 143 views
0

我的下一個對象:Javascript對象遞歸分配

var END_POINTS = { 
     list: { 
      members: { 
       show: {} 
      }, 
      subscribers:{ 
       show:{}, 
       destroy: {} 
      } 
     }, 
     user: {} 
    } 

,並希望得到該對象的每個值相匹配的值... 這樣的:

END_POINTS = { 
    list: { 
     members: { 
      show: true 
     }, 
     subscribers:{ 
      show:true, 
      destroy: true 
     } 
    }, 
    user: true 
} 
+1

對你有好處。但是你的問題是什麼? – Kiruse

+0

因爲我可以在第二個通過函數轉換第一個對象? – Zzarcon

回答

2

以下似乎工作:

var END_POINTS = { 
    list: { 
     members: { 
      show: {} 
     }, 
     subscribers:{ 
      show:{}, 
      destroy: {} 
     } 
    }, 
    user: {} 
}; 

console.log(END_POINTS); 

var objAssign = function(obj, value) { 
    for (var prop in obj) { 
     if (obj.hasOwnProperty(prop)) { 
      if (typeof obj[prop] === 'object' && !objEmpty(obj[prop])) { 
       objAssign(obj[prop], value); 
      } 
      else { 
       obj[prop] = value; 
      } 
     } 
    }; 
}; 

var objEmpty = function(obj) { 
    for (var prop in obj) { 
     if (obj.hasOwnProperty(prop)) return false; 
    } 
    return true; 
}; 

objAssign(END_POINTS, true); 

console.log(END_POINTS); 
+0

非常感謝!正是我所需要的:D – Zzarcon