如何从Google Sheets导出的JSON中根据COLUMN1HEADER值获取对应COLUMN2HEADER值
解决Google Sheets导出JSON中根据键值匹配对应值的问题
给定从Google Sheets导出的JSON数据结构如下:
[ { "COLUMN1HEADER": "V1", "COLUMN2HEADER": "response 1" }, { "COLUMN1HEADER": "V2", "COLUMN2HEADER": "response 2" }, { "COLUMN1HEADER": "V3", "COLUMN2HEADER": "response 3" } ]
若要根据COLUMN1HEADER的输入值(如'V2')获取对应的COLUMN2HEADER值,可参考以下几种实现方式:
1. 使用find()方法直接匹配(单次查询推荐)
通过数组的find()方法定位目标对象,再提取对应字段的值,同时处理未找到匹配项的情况:
// 定义导出的JSON数据 const sheetData = [ {"COLUMN1HEADER": "V1", "COLUMN2HEADER": "response 1"}, {"COLUMN1HEADER": "V2", "COLUMN2HEADER": "response 2"}, {"COLUMN1HEADER": "V3", "COLUMN2HEADER": "response 3"} ]; // 输入值 const input = 'V2'; // 查找匹配的对象 const targetItem = sheetData.find(item => item.COLUMN1HEADER === input); // 获取对应值(未找到时返回默认提示) const result = targetItem ? targetItem.COLUMN2HEADER : '未找到匹配的响应'; console.log(result); // 输出:response 2
2. 转换为Map对象(多次查询推荐)
如果需要频繁根据COLUMN1HEADER查询,先将数组转换为Map结构,能提升查询效率:
const sheetData = [ {"COLUMN1HEADER": "V1", "COLUMN2HEADER": "response 1"}, {"COLUMN1HEADER": "V2", "COLUMN2HEADER": "response 2"}, {"COLUMN1HEADER": "V3", "COLUMN2HEADER": "response 3"} ]; // 构建Map:键为COLUMN1HEADER的值,值为COLUMN2HEADER的值 const dataMap = new Map(sheetData.map(item => [item.COLUMN1HEADER, item.COLUMN2HEADER])); const input = 'V2'; const result = dataMap.get(input) || '未找到匹配的响应'; console.log(result); // 输出:response 2
3. 处理重复键值的情况
如果COLUMN1HEADER存在重复值,需要获取所有匹配的COLUMN2HEADER,可使用filter()方法:
const sheetData = [ {"COLUMN1HEADER": "V2", "COLUMN2HEADER": "response 2-1"}, {"COLUMN1HEADER": "V2", "COLUMN2HEADER": "response 2-2"}, {"COLUMN1HEADER": "V3", "COLUMN2HEADER": "response 3"} ]; const input = 'V2'; const results = sheetData.filter(item => item.COLUMN1HEADER === input).map(item => item.COLUMN2HEADER); console.log(results); // 输出:["response 2-1", "response 2-2"]
内容的提问来源于stack exchange,提问作者alsanmph
相关产品推荐
相关产品推荐

