【问题标题】:Get Javascript nested array object values获取 Javascript 嵌套数组对象值
【发布时间】:2018-10-14 09:06:54
【问题描述】:

我有这个 Javascript 对象

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

当我尝试像这样获取 title 的值时:

output._result[0].title

它返回未定义。

然而

output._result[0]

正确返回

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

知道为什么output._result[0].title 返回未定义吗? 我也试过output["_result"][0]["title"],但它也返回未定义。

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

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

服务器端代码(节点):

const productsQuery = new Parse.Query(ProductTable);

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

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

注意查询和其他代码就可以了。作为输出返回确切的对象。

【问题讨论】:

  • output._result[0].title 可以正确处理您提供的数据。您的代码中一定有错字。
  • 显示与您的帖子相关的代码。
  • @Daman 请添加 app.get 处理程序主体的完整代码
  • 解析查询不是异步的吗?
  • @pfg 它说 - 对象

标签: javascript arrays node.js object


【解决方案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

【讨论】:

  • 我愿意。因为当我输出 output._result 它确实输出一个对象
  • 为什么一切都返回正确的值呢?我们尝试过的所有东西都可以在下载完之后再调用吗?
  • @pfg Daman 没有给出完整的代码,+ 我没有发现任何提到 .get 来查询对象。也许它是 Parse 类的一些抽象。所以我只是根据官方手册写了正确的例子。另一方面,结果和解决的可能是自定义承诺对象的特殊字段,这些字段被记录到控制台或按需字符串化。
猜你喜欢
  • 1970-01-01
  • 2016-07-23
  • 2016-12-23
  • 2013-10-11
  • 2021-09-21
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 2012-11-12
相关资源
最近更新 更多