【问题标题】:i want to make temp value and store array and display it in screen in react js我想制作临时值并存储数组并在反应js中显示在屏幕上
【发布时间】:2022-01-03 15:42:27
【问题描述】:

代码

function getPostData(Player, IP, Port, channelName) {
    //console.log("insideFunction Row1"+Player); 
    var data = {
      PlayerName: Player,
      ChannelName: channelName,
      Port: Port,
      IpAddress: IP
    }
    axios({
      method: 'post',
      url: 'http://localhost:9763/api/getPlayerStatus',
      data,
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
      },
      auth: {
        username: 'admin',
        password: 'password'
      }
    }).then(response => {
      //var pushValue;    
      tempObj = [response.data];
      // console.log("tempObj", tempObj);
      for ( var i = 0; i <= tempObj.length; i++) {
        //console.log("forLoop", tempObj[i]);
        temp.push(tempObj[i]);
      }
       console.log("temp", temp);
      Postdata(temp);

    }).catch(error => {
      console.log("Error In Post Data", error);
    });
  }

我想删除未定义的 FORLOOP 并想在控制台中显示 1 个临时值,以便我可以轻松地映射表行中的值 请帮助我提供一些帮助/代码
不知道为什么会出现4次临时数据

我只想显示这种类型的 arrayofObject 没有重复没有未定义的值

我有这种类型的数据 { “状态”:1000, “特性”: { "剪辑名称": "剪辑 1", “柜台”:“15:33:44:33”, “倒计时”:“16:33:44:33”, "频道名称": "频道 1", "开始时间代码": "00:00:00:00", "玩家名": "Vtr1", “持续时间”:“12:00:00:01” } } { “状态”:1000, “特性”: { "剪辑名称": "剪辑 3", “逆天”:“12:33:44:33”, “倒计时”:“12:33:44:33”, "ChannelName": "Channel3", "开始时间代码": "00:00:00:00", "玩家名": "Vtr3", “持续时间”:“12:00:00:01” } }

【问题讨论】:

    标签: node.js reactjs


    【解决方案1】:

    我不确定,但试试这个

     for (var i = 0; i <= tempObj.length; i++) {        
        if (tempObj[i] !== undefined) {
            temp.push(tempObj[i]);
        }
    }
    

    另一种方法是你可以使用 map() 方法 看这个例子

        const aar1=[
            {status:'sts1',properties:'prop1'},
            undefined,
            {status:'sts2',properties:'prop2'},
            undefined,
            {status:'sts3',properties:'prop3'},
            undefined,
            {status:'sts4',properties:'prop4'},
            undefined,
            {status:'sts5',properties:'prop5'},
        ]
    
        const aar2= aar1.filter(function(item) {
            return item !== undefined;        
       });
    

    console.log('新数组', aar2)

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案2】:

    似乎 api 返回的数据可能包含无效的内容。试试下面(只是替换循环部分):

    for ( let i = 0; i < tempObj.length; i++) {
            //console.log("forLoop", tempObj[i]);
            if(tempObj[i] != undefined) temp.push(tempObj[i]);
          }
    

    【讨论】:

      【解决方案3】:

      如果我说得对,我想这会对你有所帮助

      function getPostData(Player, IP, Port, channelName) {
          const data = {
            PlayerName: Player,
            ChannelName: channelName,
            Port: Port,
            IpAddress: IP
          }
          axios({
            method: 'post',
            url: 'http://localhost:9763/api/getPlayerStatus',
            data,
            headers: {
              'Accept': 'application/json',
              'Content-Type': 'application/json',
            },
            auth: {
              username: 'admin',
              password: 'password'
            }
          }).then(response => {   
              response.data.map(item => {
                  if(item.Properties){
                    temp.push(item);
                  }
              })
            Postdata(temp);
      
          }).catch(error => {
            console.log("Error In Post Data", error);
          });
        }
      

      【讨论】:

      • response.data.map 不是函数我在控制台中收到此错误
      • 你的第一个答案真的很酷,恭喜!在这个答案中,描述 OP 代码失败的原因以及您认为该代码会起作用的原因会很有帮助——对于链接文档以及未来的读者来说,总是会加分。
      • @ANITAKUMARI 控制台记录 response.data 并查看它是否是数组,如果它不像我那样使用数组结构来映射它
      • @Wally 感谢您的建议,我以后肯定会这样做
      猜你喜欢
      • 2020-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2023-01-25
      • 2020-03-01
      • 1970-01-01
      • 2022-10-07
      相关资源
      最近更新 更多