首页 > 解决方案 > Arr.push 在 For 循环内

问题描述

我有一个用 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)
       }
   })
}     

标签: javascriptvue.js

解决方案


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

“this.list[i].path 不存在,这就是我试图创建的”

...如果你真的想在 this.list[i] 的对象下直接添加一个名为“path”的属性,那么你会写

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

这将为持有的对象创建一个新属性this.list[i]


附言

你根本不需要你的(名字不好的)arr变量。

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


推荐阅读