javascript 上的处理对象

Processing object on javascript

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

{ 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> ] }

我必须处理这个输入数组。我现在的兴趣点是 inputs[3]:

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

这个元素是对象。打印到控制台给我们这个结果:

console.log()
React

如果我将它转换成 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,它有另一种表示:

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 提出的带有正则表达式的 Buffer 对象来剪切空字符

    var buffer = new Buffer(data).toString();
    var result = buffer.replace(/[=10=]/g, '');