如何在JavaScript中生成{value, code}格式的键值对数组
嵌套数组转扁平键值对数组解决方案
你需要将后端返回的嵌套结构数组,转换为每个value与对应code一一配对的扁平数组,以下是可行的JavaScript实现方案:
方法一:使用flatMap(推荐)
flatMap可以同时完成映射和扁平化操作,直接得到一维结果:
const originalData = [ {value: 'FIRST', AvailableValues: [{code: "one"},{code: "two"}]}, {value: 'SECOND', AvailableValues: [{code: "one"},{code: "two"}]} ]; const transformedData = originalData.flatMap(item => item.AvailableValues.map(codeItem => ({ value: item.value, code: codeItem.code })) ); console.log(transformedData); // 输出结果: // [{value: "FIRST", code:"one"}, // {value: "FIRST", code:"two"}, // {value: "SECOND", code:"one"}, // {value: "SECOND", code:"two"}]
方法二:map + flat()(兼容旧环境)
如果运行环境不支持flatMap,可以先用map生成二维数组,再用flat()扁平化:
const transformedData = originalData .map(item => item.AvailableValues.map(codeItem => ({ value: item.value, code: codeItem.code })) ) .flat();
你之前用双层map出错,大概率是因为直接返回了二维数组,没有做扁平化处理,以上两种方法都能解决这个问题,得到你需要的目标格式。
内容的提问来源于stack exchange,提问作者Paxon
相关产品推荐
相关产品推荐

