【问题标题】:Push values from JSON object to array and use outside function将值从 JSON 对象推送到数组并使用外部函数
【发布时间】:2020-02-13 19:16:42
【问题描述】:

我正在编写一个 axios JSON 数据调用函数,并希望从我的 jJSON 函数中推送值以在函数外部使用。反正我能做到吗?

我的代码:

let website_names = `${api}`;
   axios.get(website_names, {
      cancelToken: new CancelToken(function executor(c) {
       api_requests.website_nm = c;
    })
  })
  .then(function(website_name) {
     website_name.data.forEach(d => {
     let yoyo = [];
     yoyo.push(d.element);
     console.log(yoyo);
    });
  }).catch(function(error) {
    console.log(error);
    alert_error(error);
  });

这个给我:

  • {元素:“谷歌”}
  • {元素:“雅虎”}
  • {元素:“Facebook”}
  • {元素:“BuzzFeed”}
  • {元素:“Cnet”}

我需要yoyo = ["Google", "Yahoo", "Facebook", "BuzzFeed", "Cnet"]

但我还需要在 axios 函数之外使用yoyo。在 axios 内部形成后,我需要使用数组。

【问题讨论】:

    标签: javascript jquery arrays json axios


    【解决方案1】:

    您可以为此使用map

    const getWebsites = () => {
      let website_names = `${api}`;
    
      return axios
        .get(website_names, {
          cancelToken: new CancelToken(function executor(c) {
            api_requests.website_nm = c;
          })
        })
        .then(function(website_name) {
          return website_name.data.map(d => d.element);
        })
        .catch(function(error) {
          console.log(error);
          alert_error(error);
        });
    };
    
    getWebsites().then(yoyo => {
      //you now have the array
    });

    【讨论】:

    • 谢谢!如何在 axios 函数之外获取该数组?我想在我的代码的其他地方使用该数组
    • 更新了我的答案;如果您对 axios 调用进行功能化并返回 Promise,则可以在其上调用 .then(),调用的函数将具有数组
    【解决方案2】:

    您在每次迭代中都创建了一个新数组,从而破坏了之前的数组。数组应该在forEach 循环之外初始化:

    let yoyo = [];
    website_name.data.forEach(d => {
       yoyo.push( d.element );
    });
    console.log(yoyo);
    

    【讨论】:

    • 这也可以,但是如何在函数外使用数组?
    • 将数组作为参数传递给使用它的函数怎么样?
    • 你能举个例子吗?我很困惑锄头这样做?
    • 如果functionOne 是您需要yoyo 的地方,那么当yoyo 可用时,只需调用functionOne(yoyo)
    猜你喜欢
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    相关资源
    最近更新 更多