如何从一个对象数组中读取属性值?
我在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议您首先检查数组的大小,以确保您尝试访问的元素存在。