在项目中需要取得多个数组的交集,故本例只是适用于特定场景。比如A数组 var a = {1000,10001,10002,10003}; B数组 var b = {10002, 10003}; C数组var c = {10003}; 需要取得这三个数组的交集数组。
具体思路为:先初始一个最小数组为A数组,元素个数最小的也是数组A的长度.然后再迭代各个数组,取得这几个数组长度最短的为最小长度,同时得到长度最短数组。然后,迭代最小数组与各个数组,开始比较元素相等,使用计数器来判断是否该元素在各个数组中都存在即为交集元素.
思路比较简单,但是可以实现多数组取得交集,代码如下:
<script> <BR> function getValues(obj){ <BR> var values = ""; <BR> var l = obj.options.length; <BR> for (var i=0; i<l; i++) { <BR> if (i != (l-1)) { <BR> values += obj.options(i).value + "_"; <BR> } <BR> else { <BR> values += obj.options(i).value; <BR> } <BR> } <BR> return values; <BR> } <br><br> function _test() { <BR> var ids = getValues(document.all.aa); <BR> var aa = _getIntersection(ids); <BR> } <br><br> function _getIntersection(src) { <BR> var tAry = src.split("_"); <BR> //最小数组 <BR> var minAry = null; <BR> var min = tAry[0].split(",").length; //初始化第一个为长度最小的数组 <BR> minAry = tAry[0].split(","); <BR> for (var i = 1, len = tAry.length; i<len; i++) { <BR> var temp = tAry[i].split(","); <BR> if (temp.length < min) { <BR> min = temp.length; <BR> minAry = temp; <BR> } <BR> } <BR> alert("最小数组:"+minAry); <br><br> var ret = ''; <BR> for (var i = 0, len = minAry.length; i<len; i++) { <BR> var srcNum = parseInt(minAry[i]); <BR> var counter = 0; <BR> for (var j = 0, ll = tAry.length; j<ll; j++) { <BR> var tt = tAry[j].split(","); <BR> for (var k = 0, l = tt.length; k<l; k++) { <BR> var tarNum = parseInt(tt[k]); <BR> if (srcNum == tarNum) { <BR> counter ++; <BR> } <BR> } <BR> } <BR> if (counter == tAry.length) { <BR> ret += srcNum + ","; <BR> } <BR> } <BR> ret = strSlice(ret, ','); <BR> alert("交集是:" + ret); <BR> } <br><br> //去掉结尾分隔符 <BR> function strSlice(str, split){ <BR> if ((str!=null && str!="") && (split!=' ')) <BR> return ((str.charAt(str.length-1) == split) ? str.substring(0, str.length-1) : str); <BR> else <BR> return str; <BR> } <BR> </script>

JavaScript核心数据类型在浏览器和Node.js中一致,但处理方式和额外类型有所不同。1)全局对象在浏览器中为window,在Node.js中为global。2)Node.js独有Buffer对象,用于处理二进制数据。3)性能和时间处理在两者间也有差异,需根据环境调整代码。

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python和JavaScript的主要区别在于类型系统和应用场景。1.Python使用动态类型,适合科学计算和数据分析。2.JavaScript采用弱类型,广泛用于前端和全栈开发。两者在异步编程和性能优化上各有优势,选择时应根据项目需求决定。

选择Python还是JavaScript取决于项目类型:1)数据科学和自动化任务选择Python;2)前端和全栈开发选择JavaScript。Python因其在数据处理和自动化方面的强大库而备受青睐,而JavaScript则因其在网页交互和全栈开发中的优势而不可或缺。

Python和JavaScript各有优势,选择取决于项目需求和个人偏好。1.Python易学,语法简洁,适用于数据科学和后端开发,但执行速度较慢。2.JavaScript在前端开发中无处不在,异步编程能力强,Node.js使其适用于全栈开发,但语法可能复杂且易出错。

javascriptisnotbuiltoncorc; saninterpretedlanguagethatrunsonenginesoftenwritteninc.1)javascriptwasdesignedAsalightweight,解释edganguageforwebbrowsers.2)Enginesevolvedfromsimpleterterterpretpreterterterpretertestojitcompilerers,典型地提示。

JavaScript可用于前端和后端开发。前端通过DOM操作增强用户体验,后端通过Node.js处理服务器任务。1.前端示例:改变网页文本内容。2.后端示例:创建Node.js服务器。

选择Python还是JavaScript应基于职业发展、学习曲线和生态系统:1)职业发展:Python适合数据科学和后端开发,JavaScript适合前端和全栈开发。2)学习曲线:Python语法简洁,适合初学者;JavaScript语法灵活。3)生态系统:Python有丰富的科学计算库,JavaScript有强大的前端框架。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具