在项目中需要取得多个数组的交集,故本例只是适用于特定场景。比如A数组 var a = {1000,10001,10002,10003}; B数组 var b = {10002, 10003}; C数组var c = {10003}; 需要取得这三个数组的交集数组。
具体思路为:先初始一个最小数组为A数组,元素个数最小的也是数组A的长度.然后再迭代各个数组,取得这几个数组长度最短的为最小长度,同时得到长度最短数组。然后,迭代最小数组与各个数组,开始比较元素相等,使用计数器来判断是否该元素在各个数组中都存在即为交集元素.
思路比较简单,但是可以实现多数组取得交集,代码如下:
复制代码 代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script>
function getValues(obj){
var values = "";
var l = obj.options.length;
for (var i=0; i<l; i++) {
if (i != (l-1)) {
values += obj.options(i).value + "_";
}
else {
values += obj.options(i).value;
}
}
return values;
}
function _test() {
var ids = getValues(document.all.aa);
var aa = _getIntersection(ids);
}
function _getIntersection(src) {
var tAry = src.split("_");
//最小数组
var minAry = null;
var min = tAry[0].split(",").length; //初始化第一个为长度最小的数组
minAry = tAry[0].split(",");
for (var i = 1, len = tAry.length; i<len; i++) {
var temp = tAry[i].split(",");
if (temp.length < min) {
min = temp.length;
minAry = temp;
}
}
alert("最小数组:"+minAry);
var ret = '';
for (var i = 0, len = minAry.length; i<len; i++) {
var srcNum = parseInt(minAry[i]);
var counter = 0;
for (var j = 0, ll = tAry.length; j<ll; j++) {
var tt = tAry[j].split(",");
for (var k = 0, l = tt.length; k<l; k++) {
var tarNum = parseInt(tt[k]);
if (srcNum == tarNum) {
counter ++;
}
}
}
if (counter == tAry.length) {
ret += srcNum + ",";
}
}
ret = strSlice(ret, ',');
alert("交集是:" + ret);
}
//去掉结尾分隔符
function strSlice(str, split){
if ((str!=null && str!="") && (split!=' '))
return ((str.charAt(str.length-1) == split) ? str.substring(0, str.length-1) : str);
else
return str;
}
</script>
</HEAD>
<BODY>
<button onclick="javascript:_test();">测试</button>
<select name="aa" id="aa" size="6" multiple>
<OPTION value="10004,10005,10008,10009,10010,10018">测试1</OPTION>
<OPTION value="10004,10005,10006,10008,10009,10010,10018">测试2</OPTION>
<OPTION value="10004,10005,10006,10008,10009,10010,10018">测试3</OPTION>
<OPTION value="10004,10006,10008">测试4</OPTION>
<OPTION value="10004,10010,10018">测试5</OPTION>
</select>
</BODY>
</HTML>
相关推荐:
SEO而且:打造高效网站流量增长的秘密武器,滨江网站推广营销
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
怎么用AI写文章:高效创作的秘诀
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
AI撰写率:让创作变得更高效,助力内容产业腾飞,人力ai
为什么选择收录网站是企业在线营销的必备策略,全网营销与推广
SEM+SEO:助力企业数字化营销的双剑合璧之道,ai头像丑
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
seo需要了解什么,seo需要学些什么内容 ,ovo ai
AI一键生成文章免费版:颠覆写作新体验
seo监控什么意思,seo数据监控 ,ai panda眼镜架
ChatGPT3.5最新版:智能对话新纪元,带你进入AI的未来世界,ai苔藓生长
ChatGPT:OpenAI的创新之作-一款颠覆传统的语言模型,ai球衣号
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
OpenAI推出的GPT-4Turbo大幅降低了AI应用成本,推动了AI技术的普及化,ai*版
什么是seo方法,何为seo ,ai写作神器源码是什么
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
seo网页优化什么意思,seo网站优化必知的10个问答,问吧,【解决】百度不知道 ,ai识别点读机
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
ChatGPT怎么打不开了?解决办法,轻松恢复畅通无阻!,ai订酒店ai对话
seo独立站是什么,独立站推广是什么 ,ai曲线笔刷扩展
优化型网站:提升企业竞争力的必备利器,重庆网站推广工作如何
丹东抖音seo是什么,抖音seo引流 ,ai工具编写作业指导书
seo要学会什么,seo要学多长时间 ,NTU AI 录取
ChatGPT页面无法下拉?禁用浏览器扩展,轻松解决!,imba 1.6 ai
SEO搜外:全球搜索引擎优化的秘密武器,如何选择网站建设类型呢
SEO对策:提升网站排名与流量的必备策略,SEO入门相机平价学生
优化综合:引领高效发展的智慧之道,电影营销的推广方式
ChatGPT页面无法翻阅?带你深度了解背后的原因与解决方案,pdf怎么转换ai文字
seo站内优化包括什么营销,seo站内优化操作流程 ,ai 玻璃图标
ChatGPT最近不好用了?了解这些背后的原因与解决方案,ai sketcher
seo适合什么职业,seo有前途么 ,ai小精灵
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
什么是seo寄生虫,寄生虫seo原理 ,AI 疫
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
什么是亚马逊seo策略,亚马逊的seo推广是什么 ,天天学术ai写作优惠券
SEO埋词技巧,如何提升网站排名?,贵州营销推广方法
智能AI写文章:高效创作新风尚
SEO关键词推广软件官网-助力企业实现高效精准的网络营销,圈圈ai
AI免费写作一键生成,效率与创意的完美结合
什么是seo优化营销,seo主要优化什么 ,ai绘画国风古韵
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
ChatGPT网页版为什么不能用了?解析原因与解决办法,女人莫名其妙想ai
“爱站”:开启网站优化与流量增长的新纪元,seo入门ppt
SEO应该如何提升网站流量与排名?揭秘成功的SEO策略,肺炎疫苗推广营销
AI助手不需要登陆-畅享便捷生活,随时随地高效工作,ai客服 对话
SEO分类:从基础到进阶,全面解析SEO优化的关键要素,新建设网站排名