在 Parse Cloud Code 中循环访问用户信息

Looping through user info in Parse Cloud Code

我刚刚熟悉 Parse 的云代码,但在执行一项基本任务时遇到了一些麻烦:为登录用户循环遍历数组字段之一(称为 "newsFeed")。这是我得到的:

解析代码:

Parse.Cloud.define("unseenItems", function(request, response) {

  // Get list of all news items for current user
  var user = Parse.User.current();
  var newsFeed = user.get("newsFeed");

  // Loop through news items and count number of unseen items
  // ("unseen" is a key for the array object, the value is 0 or 1)
  var sum = 0;
  for (var i = 0; i < newsFeed.length; i++) {
    sum += newsFeed[i].get("unseen"); 
  }
  console.log(sum);

  // Return sum of unseen items
  response.success(sum);

});

数据结构

newsFeed 是一个字典数组,这里是一个示例:

[{"date":<date info>,
  "text":"Sample text",
  "seen":0},
  {"date":<date info>,
  "text":"More sample text",
  "seen":1}]

Objective-C代码

[PFCloud callFunctionInBackground:@"unseenItems"
                   withParameters:@{}
                            block:^(NSNumber *result, NSError *error) {
                                if (!error){
                                    self.unseenItems=[result intValue];
                                }
                            }];

这是我在 XCode 中遇到的错误:Error: TypeError: Object #<Object> has no method 'get' at main.js:84:24 (Code: 141, Version: 1.5.0)

任何关于从这里去哪里的指示都会很棒。感谢阅读!

您好像在说 newsFeed 是一个整数数组,例如 [0, 1, 0, 0, 1]。如果是这样,那么修复很容易

sum += newsFeed[i];   // no "get" needed on an array of ints

好的,错误只是在基本 JavaScript 用法中。要进入数组内的字典,这是有效的:

 for (var i = 0; i < newsFeed.length; i++) {
    sum += newsFeed[i]["unseen"]; 
  }