Forr循环内的Arr.push

时间:2019-07-04 11:00:36

标签: javascript vue.js

我有一个用Vue构建的SPA,我正在尝试从自定义API提取一系列商品。

一旦存储了我要遍历该数组并推送自定义路径值的项目,但是出现错误

  

this.list [i] .push不是函数

我不确定为什么这不可能,但是我确定我错过了一些东西。

this.list: []

fetch(){
   let url =  'http://core.com/api/v0/sources/'

   axios.get(url).then((response) => {
       this.list = response.data.data

       for(var i = 0; i < this.list.length; i++){
           let arr = { path: '/testPath' }
           this.list[i].push(arr)
       }
   })
}     

2 个答案:

答案 0 :(得分:1)

在评论中,您提到了您的目标:

  

“ this.list [i] .path不存在,这是我正在尝试创建的路径”

...如果您真的想在this.list [i]的对象下直接添加一个名为“ path”的属性,则可以编写

this.list[i].path = '/testPath'

这将为保存在this.list[i]上的对象创建一个新属性。


P.S。

这里根本不需要您的(名字很差的)arr变量。

使用.push()没有任何意义(并且不起作用),因为this.list[i]包含一个对象而不是一个数组,而且这样做也不会创建所需的属性。

答案 1 :(得分:0)

push 是数组的功能,但是您试图将一个对象压入一个对象中,这就是为什么出现此异常的原因。

您可以执行以下操作。

this.list[i].path = '/testPath' 

path 属性将动态添加到对象 this.list [i] 中。