Svelte中如何过滤JSON指定前缀键并转换为数组对象?
解决方案
你的问题核心是JSON响应是对象而非数组,直接调用map方法会报错——对象本身没有map属性。需要先提取对象的键,再完成过滤与结构转换,具体实现如下:
完整Svelte处理代码
<script> async function processApiData() { const response = await fetch('你的API接口地址'); const data = await response.json(); // 提取键→过滤type开头项→转换为目标结构 const items = Object.keys(data) .filter(key => key.startsWith('type::')) .map(key => ({ id: key, value: key, title: key })); return items; } </script>
代码说明
- 提取对象键:用
Object.keys(data)将JSON对象的所有键转换为数组,得到["type::new", "type::closed", ...] - 过滤目标键:通过
filter筛选出以type::开头的键(精准匹配你的需求) - 转换结构:用
map将每个符合条件的键,映射为包含id/value/title的对象
最终输出结果
运行后会生成你需要的数组结构:
[ { id: 'type::new', value: 'type::new', title: 'type::new' }, { id: 'type::closed', value: 'type::closed', title: 'type::closed' }, { id: 'type::bug', value: 'type::bug', title: 'type::bug' } ]
内容的提问来源于stack exchange,提问作者pk86
相关产品推荐
相关产品推荐

