将项目推送到数组

时间:2018-11-15 09:38:46

标签: javascript

我有以下变量

var brands = [];

我需要填充一些数据。数据来自API。我使用Axios来执行GET

getRemoteBrands() {
    axios
      .get("http://my-url")
      .then(response => {
        response.data.forEach(element => {
          var instance =
          {
            label: element.brand,
            value : element.brand    
          };
          this.brands.push(instance);
        });
      }).catch(error => console.log(error));
  }

开发人员工具中显示以下错误

TypeError: Cannot read property 'push' of undefined
    at index.js:104
    at Array.forEach (<anonymous>)
    at index.js:98

很显然,brands不是array,而是对象。如何使它成为array

1 个答案:

答案 0 :(得分:1)

var brands = [];创建一个独立变量。 this.brands不是独立变量,它是this的属性,这是完全不同的(在您的情况下,听起来是undefined-您从未为{{1 }}之前。

在创建独立变量this.brands后,请参考其中一个:

brands

或在构造函数中创建var brands = []; class something { // ... getRemoteBrands() { var instance = { label: element.brand, value : element.brand }; brands.push(instance); } } ,并参考this.brands

this.brands