在javascript上处理对象

在javascript上处理对象,javascript,ethereum,Javascript,Ethereum,我在JavaScript上有一个有趣的对象,它是我从第三方库方法调用中收到的。数据结构如下所示: { name: 'askForHelp', types: [ 'uint256', 'address', 'bytes32', 'uint256', 'uint256' ], inputs: [ <BN: ffffffffffffffffffffffffffffffffffffffffffffffffffffffff915b27d9>, '9e8b197ec64

我在JavaScript上有一个有趣的对象,它是我从第三方库方法调用中收到的。数据结构如下所示:

{ name: 'askForHelp',
  types: [ 'uint256', 'address', 'bytes32', 'uint256', 'uint256' ],
  inputs: 
   [ <BN: ffffffffffffffffffffffffffffffffffffffffffffffffffffffff915b27d9>,
     '9e8b197ec64ff341b6f942852169c280c2c7cc80',
     <Buffer 52 65 61 63 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>,
     <BN: a>,
     <BN: a> ] }
如果我将其转换为JSON,它看起来会有所不同:

JSON.stringify(inputs[3])
{"type":"Buffer","data":[82,101,97,99,116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}
如果我将其转换为字符串,它有另一个表示形式:

String(inputs[2])
"React\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000
\u0000\u0000\u0000\u0000"

处理此数据结构的正确方法是什么?为什么这个对象视图的行为如此不同

为了结束我自己的问题,我使用@baao和regexp提出的Buffer对象来剪切空字符

    var buffer = new Buffer(data).toString();
    var result = buffer.replace(/\0/g, '');

console.log(新的缓冲区([82101,97,99116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]).toString())
->谢谢。如何访问放入缓冲区构造函数的数据。谢谢从数组中删除未填充字节的问题仍然存在——字符串表示形式中的“\u0000”
String(inputs[2])
"React\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000
\u0000\u0000\u0000\u0000"
    var buffer = new Buffer(data).toString();
    var result = buffer.replace(/\0/g, '');