将数组转换为含重复键的对象(用于项目QueryParams传递)
数组转重复键查询参数方案
JavaScript中无法创建保留重复键名的字面量对象,直接写重复键的对象会导致后面的键值覆盖前面的(最终只会保留最后一个key: 'hij')。但如果是要生成符合QueryParams要求的key=abc&key=def&key=hij格式,可用以下两种方法:
方法1:使用URLSearchParams API(推荐)
这是处理查询参数的标准API,原生支持重复键的添加:
const arr = ['abc', 'def', 'hij']; const params = new URLSearchParams(); arr.forEach(item => { params.append('key', item); }); // 生成目标查询字符串:"key=abc&key=def&key=hij" console.log(params.toString());
方法2:手动拼接查询字符串
适合需要更灵活控制的场景,注意用encodeURIComponent处理特殊字符避免解析错误:
const arr = ['abc', 'def', 'hij']; const queryStr = arr .map(item => `key=${encodeURIComponent(item)}`) .join('&'); // 生成目标查询字符串:"key=abc&key=def&key=hij" console.log(queryStr);
内容的提问来源于stack exchange,提问作者Parth Developer
相关产品推荐
相关产品推荐

