获取Javascript嵌套数组对象值

时间:2018-05-04 00:14:03

标签: javascript arrays node.js object

我有这个Javascript对象

var output = { 
   "_resolved": true, 
   "_result": [ { 
                   "title": "Pencil", 
                   "quantity": 1, 
                   "objectId": "HknL2ZAspb" 
              } ] 
}

当我尝试获得这样的标题值时:

output._result[0].title

它返回undefined。

然而

output._result[0]

正确返回

{ "title": "Pencil", "quantity": 1, "objectId": "HknL2ZAspb" }

知道为什么output._result[0].title返回undefined? 我也试过output["_result"][0]["title"]但它也返回undefined。

var output = { 
   "_resolved": true, 
   "_result": [ { 
                   "title": "Pencil", 
                   "quantity": 1, 
                   "objectId": "HknL2ZAspb" 
              } ] 
}

console.log(output._result[0].title);

Serverside代码(节点):

const productsQuery = new Parse.Query(ProductTable);

output = productsQuery.get('HknL2ZAspb');   //objectID

app.get('/', (req, res) => res.send(JSON.stringify(output["_result"][0]["title"])))

注意Query和其他代码就好了。当输出返回确切的对象时。

1 个答案:

答案 0 :(得分:1)

因为你正在使用Parse和它的异步事物。

official documentation中的示例我可以举例说明:

const ProductTable = 'products';

app.get('/products/:id', async (req, res) => {
  try {
    const productId = req.params.id;
    const query = (new Parse.Query(ProductTable))
                    .equalTo('objectId', productId);
    const result = await query.find();

    if (result[0]) {
      return res.status(200).send(result[0]);
    }
    res.status(404).send({});
  }
  catch (error) {
    res.status(500).send(error);
  }
});

使用它:http://127.0.0.1:3000/products/HknL2ZAspb