如何在JavaScript中存储两组ID为类对象结构及提取指定JSON字段
JavaScript 问题解答
1. 将两组ID保存为类对象结构的集合
如果要把两组ID(比如业务ID和关联ID)组织成类对象结构的集合,有两种实用方式:
方式一:自定义类封装
先定义一个类来承载两组ID,再创建实例存入数组作为集合,适合需要扩展方法的场景:
class IdPair { constructor(mainId, relatedId) { this.mainId = mainId; this.relatedId = relatedId; } // 可按需添加额外方法,比如验证ID格式 validateIds() { return !!this.mainId && !!this.relatedId; } } // 构建集合 const idCollection = [ new IdPair('a0722115-6f02-4995-9814-9cf48ff424e1', '9e6c83c6-3f6f-4023-855e-1c933f7af0bf'), new IdPair('e5795e12-2cb1-4051-a018-704cf19e0d0d', '06b37132-0aa0-49fa-b442-8afda800006d') ]; // 调用示例 console.log(idCollection[0].validateIds()); // 输出 true
方式二:对象字面量集合
如果不需要类的额外功能,直接用对象字面量构建集合更轻量化:
const idCollection = [ { attachmentId: 'a0722115-6f02-4995-9814-9cf48ff424e1', txnId: '9e6c83c6-3f6f-4023-855e-1c933f7af0bf' }, { attachmentId: 'e5795e12-2cb1-4051-a018-704cf19e0d0d', txnId: '06b37132-0aa0-49fa-b442-8afda800006d' } ]; // 访问示例 console.log(idCollection[1].txnId); // 输出 06b37132-0aa0-49fa-b442-8afda800006d
2. 从JSON响应中提取指定字段(循环实现)
针对你提供的JSON数组,用循环提取attachmentId和txnId,下面几种循环方式都能实现:
方式一:普通for循环
// 原始响应数据 const responseData = [ { date: '2022-07-18T17:08:00Z', attachmentId: 'a0722115-6f02-4995-9814-9cf48ff424e1', txnId: '9e6c83c6-3f6f-4023-855e-1c933f7af0bf', status: 'completed' }, { date: '2022-07-18T16:53:10Z', attachmentId: 'e5795e12-2cb1-4051-a018-704cf19e0d0d', txnId: '06b37132-0aa0-49fa-b442-8afda800006d', status: 'completed' }, { date: '2022-07-13T21:55:40Z', attachmentId: '0490414b-0c78-4335-8c7c-fa6f6f3a227e', txnId: '42a6e317-4e16-4cb4-a267-74c0c1c7d3b5', status: 'completed' } ]; const extractedData = []; // 普通for循环遍历 for (let i = 0; i < responseData.length; i++) { const item = responseData[i]; extractedData.push({ attachmentId: item.attachmentId, txnId: item.txnId }); } console.log(extractedData);
方式二:for...of循环(更简洁)
const extractedData = []; // 直接遍历数组元素 for (const item of responseData) { extractedData.push({ attachmentId: item.attachmentId, txnId: item.txnId }); } console.log(extractedData);
方式三:forEach循环
const extractedData = []; // 用forEach遍历每个元素 responseData.forEach(item => { extractedData.push({ attachmentId: item.attachmentId, txnId: item.txnId }); }); console.log(extractedData);
内容的提问来源于stack exchange,提问作者Dark Matter
相关产品推荐
相关产品推荐

