JavaScript/jQuery:合并Split后的数组并去除重复值方案咨询
解决方案
合并数组(对应PHP的array_merge)
原生JavaScript可以直接处理二维数组合并:
- 若你已经得到二维数组,用
Array.flat()一键扁平化:dept_arr.flat() - 或者在收集数据时直接展开添加,避免生成二维数组:比如用
push(...拆分后的数组),直接把拆分出的单个地点元素加入主数组
去重(对应自定义逻辑的array_filter)
去重有两种常用实现:
- Set对象法:利用Set自动去重的特性,代码简洁高效:
[...new Set(数组)] - filter索引判断法:兼容性更好,适合旧版浏览器:
数组.filter((item, idx) => 数组.indexOf(item) === idx)
修改后的完整代码
jQuery(document).ready(function($) { let get_json = 'https://boards-api.greenhouse.io/v1/boards/frequence/departments/'; $.getJSON(get_json, function(data) { let dept_arr = []; $.each(data.departments, function(key, value) { if (value.jobs.length > 0) { $.each(value.jobs, function(key, job) { // 直接展开拆分后的数组,添加到主数组,避免生成二维结构 dept_arr.push(...job.location.name.split('|')); }); } }); // 去重并输出结果 let uniqueLocations = [...new Set(dept_arr)]; console.log(uniqueLocations); }); });
兼容旧版浏览器的去重写法
如果需要兼容不支持Set和扩展运算符的环境,替换去重部分代码:
let uniqueLocations = dept_arr.filter(function(item, index) { return dept_arr.indexOf(item) === index; });
内容的提问来源于stack exchange,提问作者Never Stop Learning
相关产品推荐
相关产品推荐

