如何在 javascript 中的 foreach 循环之外获取数据?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/32086039/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 14:50:25  来源:igfitidea点击:

How can i get data outside a foreach loop in javascript?

javascriptarraysajaxjson

提问by ar em

I want to get the value of my uid outside my foreach. How can i do it. .Please help

我想在我的 foreach 之外获取我的 uid 的值。我该怎么做。。请帮忙

this is my code

这是我的代码

var conf_url = "https://192.168.236.33/confbridge_participants/conference_participants.json?cid=0090000007";

       getParticipant(conf_url, function(data) {
        data.forEach(function(obj){
           document.write(obj['uid'])
        });
    });
// i want to get the value of uid here
// I WANT TO GET THE VALUE OF UID HERE
     function getParticipant(conf_uri, handleData) {
        $.ajax({
          type: "GET",
          url: conf_uri,
          dataType: "jsonp",
          jsonpCallback: 'callback',
          contentType: "application/javascript",
          success: function(data) {
            handleData(data);
            console.log(data);
          }
        });

      }

this is my json data which is https://192.168.236.33/confbridge_participants/conference_participants.json?cid=0090000007

这是我的 json 数据 https://192.168.236.33/confbridge_participants/conference_participants.json?cid=0090000007

[{"id":8,"uid":"0090000163","cid":"0090000007","extension":"202","secret":"Myojyo42f!","leader":true,"simultaneous":false,"confbridge_id":6,"created_at":"2015-08-18 09:22:20","updated_at":"2015-08-18 09:22:20"},{"id":11,"uid":"0090000165","cid":"0090000007","extension":"204","secret":"Myojyo42f!","leader":false,"simultaneous":false,"confbridge_id":6,"created_at":"2015-08-18 09:45:36","updated_at":"2015-08-18 09:45:36"}]

回答by owais ali

note:first of all you have to add global array variable. javascript contain a .pushfunction it will be add your object one be one

注意:首先你必须添加全局数组变量。javascript 包含一个.push函数,它将添加您的对象一个是一个

var globalArray=[];
function getParticipant(conf_uri, handleData) {
        $.ajax({
          type: "GET",
          url: conf_uri,
          dataType: "jsonp",
          jsonpCallback: 'callback',
          contentType: "application/javascript",
          success: function(data) {
for (i = 0; i < data.length; i++) { 
    globalArray.push( data[i]);
}
          }
        });
  }

回答by Sherlock

You can declare a global variable

您可以声明一个全局变量

    var newVariable = [];

    getParticipant(conf_url, function(data) {
        data.forEach(function(obj){
           newVariable.push(obj['uid']);
        });
    });

newVariableis now accessible outside foreach, but check your assignment, you are using loop so expected that you have multiple values.

newVariable现在可以在 foreach 之外访问,但请检查您的分配,您正在使用循环,因此预计您有多个值。

回答by Sina

Did you try to use a function for it?

您是否尝试为此使用函数?

var conf_url = "https://192.168.236.33/confbridge_participants/conference_participants.json?cid=0090000007";

       getParticipant(conf_url, function(data) {
        data.forEach(function(obj){
           document.write(obj['uid']);
           myVal(obj['uid']);
        });
    });

// I WANT TO GET THE VALUE OF UID HERE
function myVal (var uid)
{

  console.log(uid);
  //do something
}
     function getParticipant(conf_uri, handleData) {
        $.ajax({
          type: "GET",
          url: conf_uri,
          dataType: "jsonp",
          jsonpCallback: 'callback',
          contentType: "application/javascript",
          success: function(data) {
            handleData(data);
            console.log(data);
          }
        });

      }

回答by user4642212

This gets all uids into an Array:

这将所有uids 放入一个数组中:

getParticipant(conf_url, function(data) {
    data.map(function(obj){
       return obj.uid;
    });
});

mapcreates a new Array based on another one. The function returns whatever you're looking for (obj.uid).

map基于另一个数组创建一个新数组。该函数返回您要查找的任何内容 ( obj.uid)。