我只是熟悉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)
关于从这里去哪里的任何指示都会很棒。谢谢你的阅读!
答案 0 :(得分:0)
看起来你说newsFeed是一个整数数组,比如[0, 1, 0, 0, 1]
。如果是这样,那么修复很容易
sum += newsFeed[i]; // no "get" needed on an array of ints
答案 1 :(得分:0)
好的,错误只是基本的JavaScript使用情况。要进入数组内部的字典,这是有用的:
for (var i = 0; i < newsFeed.length; i++) {
sum += newsFeed[i]["unseen"];
}