web3交易收据调用map/objectMap报错,如何提取指定字段?
问题原因及解决方法
为什么报错?
map()是JavaScript数组专属方法,但你的receipt是单个交易收据对象,不是数组,所以调用receipt.map会提示“不是函数”;而objectMap并非JS原生对象的内置方法,自然也无法使用。
正确提取指定字段的方法
以下几种方式都能实现需求,按需选择即可:
方式1:解构赋值(最简洁)
直接从对象中解构出需要的字段,再组装成新对象:
const { from, status } = receipt; const response = { from, status };
方式2:手动创建新对象(直观)
如果字段不多,直接通过对象属性访问组装:
const response = { from: receipt.from, status: receipt.status };
方式3:封装工具函数(适合多字段/复用场景)
如果需要频繁提取不同字段,可以写一个通用工具函数:
// 工具函数:从对象中提取指定键的字段 function pickObjectFields(obj, targetKeys) { return targetKeys.reduce((result, key) => { if (obj[key] !== undefined) { result[key] = obj[key]; } return result; }, {}); } // 使用示例:提取from和status const response = pickObjectFields(receipt, ['from', 'status']);
内容的提问来源于stack exchange,提问作者Mykola Sw
相关产品推荐
相关产品推荐

