对象没有方法推送

时间:2016-01-11 14:52:51

标签: javascript parse-platform

我正在查询某些对象,并且我试图将它们放入数组中:

 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')获取正确的字符串标题以来,我不确定自己做错了什么。

2 个答案:

答案 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");
});

这个函数实际上确实返回数组作为结果,这看起来就像你所追求的那样。