如何从响应体中提取鞋码(size)与对应库存数量(quantity)?
解决API响应中鞋码与库存的结构转换问题
1. 修正变量名错误
你原代码中msizes未定义,需替换为已声明的sizesArray(即response.data.sizes),否则会抛出变量未定义的错误。
2. 结构转换实现方式
由于sizes数组中的每个元素都是仅含单个键值对的对象,我们可以通过Object.entries或Object.keys+Object.values提取鞋码(键)和库存(值),再重组为目标结构:
方法一:使用Object.entries(推荐)
const sizesArray = response.data.sizes; const formattedSizes = sizesArray.map(item => { // 提取单个键值对并解构 const [size, quantity] = Object.entries(item)[0]; // 若鞋码需要数字类型,通过Number()转换;无需则直接保留字符串 return { size: Number(size), quantity }; }); console.log(formattedSizes); // 输出:[{size: 43, quantity: 35}, {size: 42, quantity: 20}, {size: 38, quantity: 10}]
方法二:使用Object.keys + Object.values
const sizesArray = response.data.sizes; const formattedSizes = sizesArray.map(item => { const size = Object.keys(item)[0]; const quantity = Object.values(item)[0]; return { size: Number(size), quantity }; });
补充说明
- 两种方法均适配当前API返回结构,
Object.entries更简洁,可一次性获取键与值; - 若业务允许鞋码为字符串类型,去掉
Number()转换即可; - 若后续API返回的对象存在多个键值对,可根据需求调整遍历逻辑(比如循环处理所有键值对)。
内容的提问来源于stack exchange,提问作者hanku8
相关产品推荐
相关产品推荐

