如何从一个对象数组中读取属性值?

我在node.js工作。

我在.js文件中做了一个restAPI调用,如下所示:

$http.get("/api/products/"+cat_id).success( function(response){ //$scope.cat_id = response; console.log("Got response products for page 1"); console.log("Received products for cat :"+response.pdt.cat_id); } ) 

以下代码片段包含在文件app.js中:

 app.get('/api/products/:cat', function(req, res){ var pdts = []; for(var i=0; i<=6; i++){ var pdt = { id : "1" + i , name: 'Product' + i ,cat_id: req.params.cat }; pdts.push(pdt); } res.json(pdts); }); 

对象数组pdts通过最后一条语句作为响应发送。

现在我该如何访问我的对象pdt的个人属性?

的结果

 console.log("Received products for cat :"+response.pdt.cat_id); 

 Cannot read property 'cat_id' of undefined 

您正在返回一个对象数组,因此您需要遍历它并分别访问每个元素:

 $http.get("/api/products/" + cat_id).success(function(response) { console.log("Got response products for page 1"); // response is an array of javascript objects for (var i = 0; i < response.length; i++) { var element = response[i]; console.log("Received products for cat :" + element.cat_id); } }); 

或者如果你想通过索引直接访问某个元素:

 console.log("Received products for cat :" + response[0].cat_id); 

显然,build议您首先检查数组的大小,以确保您尝试访问的元素存在。