使用ethers.js解析日志后args的类型及键值获取问题
Ethers.js解析日志后args的类型与键值获取
问题场景
使用ethers.js获取并解析日志后得到变量
args,执行console.log(args)输出:[ '1111', '2222', _name: '1111', _user: '2222' ]但执行
JSON.stringify(args)转换为JSON后,结果仅为:['1111','2222']
问题解答
args的类型
这是带有自定义属性的数组。在JavaScript中,数组本质是特殊的对象,除了默认的索引属性(0、1、2...),还可以像普通对象一样添加自定义键值对属性。但JSON序列化机制只会处理数组的索引元素,忽略这些额外的自定义属性,所以JSON.stringify只输出了数组的索引项。获取_name这类键对应的值
有两种直接的方式:
- 点语法访问:
args._name - 方括号语法访问:
args['_name']
如果需要批量获取所有属性(包括索引项和自定义属性),可以用Object.getOwnPropertyNames(args)获取所有属性名,再遍历取值。
内容的提问来源于stack exchange,提问作者Young Zhou
相关产品推荐
相关产品推荐

