0

我有一个像下面这样的课程;

function Request()
  {
      this.CompanyId;
      this.Password;
      this.SessionId;
      this.UserId;
      this.UserName; 
  }

我创建了一个对象并想要获取对象的字节数组;

var request = new Request();

    request.UserName = GlobalProcess.SessionInfo.Server.UserName;
    request.Password = GlobalProcess.SessionInfo.Server.Password;
    request.CompanyId = GlobalProcess.SessionInfo.SelectedDatabase.CompanyId.toString();
    request.UserId = GlobalProcess.SessionInfo.UserId.toString();
    request.SessionId = GlobalProcess.SessionInfo.SessionId.toString();

var requestbinary = GetByte(request);

    console.log(requestbinary);

我的GetByte功能是;

function GetByteArrayFromStringArray(parameter) 
  {
     var mainbytesArray = [];
     for (var i = 0; i < parameter.length; i++)
         mainbytesArray.push(parameter.charCodeAt(i));

        return mainbytesArray;
  }

在控制台中,我得到空数组。我究竟做错了什么?

4

2 回答 2

2

尝试这个

function GetByteArrayFromStringArray(parameter) {
     for (var key in parameter) { // loop through properties

        var mainbytesArray = [];
         for (var i = 0; i < parameter[key].length; i++)
            mainbytesArray.push(parameter[key].charCodeAt(i));
     }
     return mainbytesArray;

}

它循环遍历属性并为您获取这些数组

于 2013-05-27T15:29:09.927 回答
1

您正在将一个对象传递给一个需要字符串的函数(我认为)。你的对象没有“长度”属性,所以循环什么都不做。

我想你可以让函数遍历对象的属性,并从每个属性的值中累积一个数组。我认为这不会非常有用,因为在 JavaScript 中你不能保证你会以任何特定的顺序遍历对象的属性。

于 2013-05-27T15:16:31.030 回答