我正在查询某些对象,并且我试图将它们放入数组中:
var Post = Parse.Object.extend('Post')
var query = new Parse.Query(Post)
query.find({
success: function (results) {
console.log('Successfully retrieved ' + results.length + ' scores.')
var arr = []
results.forEach(function (result) {
arr = arr.push(result.get('title'))
})
console.log(arr)
},
error: function (error) {
alert('Error: ' + error.code + ' ' + error.message)
}
})
正如您所看到的,arr
是一个数组,但我不知道为什么会出现此错误:
Uncaught TypeError: Object 1 has no method 'push'
自result.get('title')
获取正确的字符串标题以来,我不确定自己做错了什么。
答案 0 :(得分:4)
push
返回数组的新长度,因此在分配后,arr
现在是Number
个对象。
你想像这样推进数组:
results.forEach(function (result) {
arr.push(result.get('title'))
})
答案 1 :(得分:2)
正如另一个答案所说,push()
不返回数组,而是返回Number
个对象。但是,如果您愿意,可以选择其他答案。
var arr = results.map(function(result) {
return result.get("title");
});
这个函数实际上确实返回数组作为结果,这看起来就像你所追求的那样。