Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象没有方法推送_Javascript_Parse Platform - Fatal编程技术网

Javascript 对象没有方法推送

Javascript 对象没有方法推送,javascript,parse-platform,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 = [] re

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

 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')
获取正确的字符串标题。

返回数组的新长度,因此赋值后,
arr
现在是一个
数字
对象

您希望按如下方式推送到阵列上:

results.forEach(function (result) {
    arr.push(result.get('title'))
})
返回数组的新长度,因此赋值后,
arr
现在是一个
Number
对象

您希望按如下方式推送到阵列上:

results.forEach(function (result) {
    arr.push(result.get('title'))
})

正如这里的另一个答案所说,
push()
不返回数组,而是返回一个
Number
对象。不过,如果你愿意,这里有一个备选答案

var arr = results.map(function(result) {
    return result.get("title");
});

这个函数实际上会返回数组作为结果,这似乎是您想要的。

正如这里的另一个答案所说,
push()
不会返回数组,而是返回一个
数字
对象。不过,如果你愿意,这里有一个备选答案

var arr = results.map(function(result) {
    return result.get("title");
});

这个函数实际上会返回数组作为结果,这似乎是你想要的。

嘿,你说得对。但是为什么,为什么
push
返回一个数字?因为
Array.prototype.push
返回一个
number
对象。谢谢您的解释。奇怪的是,
console.log
返回数组,但是使用
return
什么也不返回。如果它通过返回一个完整的新数组来工作,那就是这样expensive@alexchenco这个答案很完美。但是如果它像'arr=arr.push(result.get('title')那样工作,那么对象将在每次迭代中被复制。这将消耗大量内存。现在,它在每次迭代中都使用相同的对象。嘿,你说得对。但是为什么,为什么
push
返回一个数字?因为
Array.prototype.push
返回一个
number
对象。谢谢您的解释。奇怪的是,
console.log
返回数组,但是使用
return
什么也不返回。如果它通过返回一个完整的新数组来工作,那就是这样expensive@alexchenco这个答案很完美。但是如果它像'arr=arr.push(result.get('title')那样工作,那么对象将在每次迭代中被复制。这将消耗大量内存。现在,它在每次迭代中都使用相同的对象。使用
arr.push(result.get('title'))
您试图实现什么?为什么要使用另一个数组而不是只映射已有的数组?
var arr=results.map(函数(result){return result.get(“title”);})
可能更容易阅读使用
arr.push(result.get('title'))
您想要实现什么?为什么要使用另一个数组而不是只映射已有的数组?
var arr=results.map(函数(result){return result.get(“title”);})可能更容易阅读