从javascript中的类对象获取字节数组?

时间:2013-05-27 15:14:57

标签: javascript bytearray

我有一个类似下面的课程;

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;
  }

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

2 个答案:

答案 0 :(得分: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;

}

它遍历属性并获取theese的数组

答案 1 :(得分:1)

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

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