2013-05-10 58 views
0

我有像下面这样的对象。生成一些条件的JavaScript对象

{ 
    "lastViewTime": "May 09, 2013 08:36:09 PM GMT", 
    "browser": 
    { 
     "Firefox": 200, 
     "Others": 800, 
     "Safari": 0, 
     "Chrome": 522, 
     "IE": 45 
    } 
} 

从这个我想产生像下面(我要以这种方式传递这只是一些插件的[]是重要的)

var browserData = [ 
         ['Firefox', data.browser.Firefox], 
         ['IE',  data.browser.IE], 
         ['Safari', data.browser.Safari], 
         ['Others', data.browser.Others], 
         ['Chrome', data.browser.Chrome] 
        ]; 

现在我想添加这个键值对浏览器数据只有当data.browser.Firefox意味着那些值> 0.

为此,我需要一个for循环。但我无法理解我如何制作这种物体。如果我创建一个数组并将int推送到该键值对,它不会给我这种结构。

如果有人能指导我,这将是伟大的。

+2

你到目前为止试过了什么?帮助你解决问题比写新的东西更容易。 – 2013-05-10 18:53:21

+0

var browserData = new Array(); (data.browser中的键) { \t browserData [key] = data.browser [key]; } 我正在尝试这种东西,但没有给我正确的结果。 – Denzz 2013-05-10 18:56:56

回答

0
var browserData = []; 
for(var i in data.browser){ 
    if(data.browser.hasOwnProperty(i) { 
     browserData.push([i, data.browser[i]]); 
    } 
} 
+0

不要忘记'if(data.browser.hasOwnProperty(i))'检查。有时候这是必要的(参考:['hasOwnProperty()'](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty))。 – 2013-05-10 19:17:40