如何使用Java脚本

时间:2018-10-23 11:40:16

标签: javascript json

var user_business_data =[  
   {  
      "user_id":"5db3e3b1",
      "blog":{  
         "blog_id":"128c522e"
      },
      "business_units":[  
         {  
            "business_unit_id":"000396c9",
            "viewing":101
         },
         {  
            "business_unit_id":"01821e44",
            "viewing":102
         },
         {  
            "business_unit_id":"02cbcad5",
            "viewing":103
         }
      ]
   }
]

我想获取所有的“ business_unit_id”并存储在一个变量中。为此,我需要获取所有的“ business_unit_id”。所以我尝试使用以下代码打印所有ID,但无法打印。

if (undefined !== user_business_data.business_units && user_business_data.business_units.length) {
    for(var i=0;i<user_business_data.business_units.length;i++){
         var key = user_business_data.business_units[i];
         console.log("Key : "+key, "Values : "+user_business_data.business_units[key]);
    } 
} else {
    console.log("Undefined value");
}

我总是得到未定义的值。

5 个答案:

答案 0 :(得分:2)

var user_business_data=[{"user_id":"5db3e3b1","blog":{"blog_id":"128c522e"},"business_units":[{"business_unit_id":"000396c9","viewing":101},{"business_unit_id":"01821e44","viewing":102},{"business_unit_id":"02cbcad5","viewing":103}]}]
var unit_ids = [];
user_business_data.forEach(function(user) {
  user.business_units.forEach(function(business) {
    unit_ids.push(business.business_unit_id);
  });
});
console.log(unit_ids);

答案 1 :(得分:0)

user_business_data是一个数组而不是一个对象。如果要访问数组中的任何对象,则必须指定所指位置的索引。因此,在示例中,将其更改为以下内容即可:

if (undefined !== user_business_data[0].business_units && user_business_data[0].business_units.length) {
            for(var i=0;i<user_business_data[0].business_units.length;i++){
    var key = user_business_data[0].business_units[i]. business_unit_id;
    console.log("Key : "+key, "Values : "+user_business_data[0].business_units[key]);
} 
        } else {
           console.log("Undefined value");


}

答案 2 :(得分:0)

user_business_data是一个数组,而不是一个对象,因此您需要遍历它或从中读取特定的索引。

此外,代码中的key将是一个对象(单个业务单位对象),因此您不能直接打印它-而是需要在对象内获取特定属性。

这是一个简单的演示,它从外部数组中读取第一个键,然后列出业务部门中的所有特定属性。该代码可以进一步简化,但这说明了重点:

var user_business_data =

  [{
    "user_id": "5db3e3b1",
    "blog": {
      "blog_id": "128c522e"
    },
    "business_units": [{
        "business_unit_id": "000396c9",
        "viewing": 101
      },
      {
        "business_unit_id": "01821e44",
        "viewing": 102
      },
      {
        "business_unit_id": "02cbcad5",
        "viewing": 103
      }
    ]
  }]

if (undefined !== user_business_data[0].business_units && user_business_data[0].business_units.length) {
  for (var i = 0; i < user_business_data[0].business_units.length; i++) {
    var key = user_business_data[0].business_units[i].business_unit_id;
    console.log("Key : " + key, "Values : " + user_business_data[0].business_units[i].viewing);
  }
} else {
  console.log("Undefined value");


}

我建议您先弄清JSON / JS对象中的数组,对象和属性之间的区别,然后这种事情就变得微不足道了。

答案 3 :(得分:0)

这是因为user_business_data是一个数组,而不是对象,但是您像user_business_data.business_units而不是user_business_data[0].business_units一样访问它

var user_business_data = [{"user_id": "5db3e3b1","blog": {"blog_id": "128c522e"}, "business_units": [{"business_unit_id": "000396c9","viewing": 101}, {"business_unit_id": "01821e44","viewing": 102},{"business_unit_id": "02cbcad5","viewing": 103}]}];

// Both methods give the same result, but the second checks for null values.
var ids1 = user_business_data[0].business_units.map(x => x.business_unit_id)

console.log('Method 1:', ids1);

// The && check for null values, kinda like an if statement.
var data = user_business_data.length && user_business_data[0]
var units = data && data.business_units
var ids2 = units && units.length && units.map(x => x.business_unit_id)

console.log('Method 2:', ids2)

答案 4 :(得分:-1)

如果只想打印business_unit_id,则可以执行以下操作:

var user_business_data =
[
                    {
                       "user_id": "5db3e3b1",
                       "blog": {
                            "blog_id": "128c522e"
                               },
                       "business_units": [
                            {
                                "business_unit_id": "000396c9",             
                                "viewing": 101
                            },
                            {
                                "business_unit_id": "01821e44",              
                                "viewing": 102
                            },
                            {
                                "business_unit_id": "02cbcad5",                
                                "viewing": 103
                            }           
                        ]
                     }
                ]
for(var i=0;i<user_business_data[0]["business_units"].length;i++){
console.log(user_business_data[0]["business_units"][i].business_unit_id)
}