js數(shù)組操作方法總結(jié)(必看篇)
判斷數(shù)值數(shù)組中各個(gè)數(shù)字出現(xiàn)的奇偶次數(shù)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>數(shù)組操作</title> </head> <body> <script type="text/javascript"> var arr=[3,1,2,2,1,3,1]; var sum=[]; var res=[]; var count=0; var temp; for(var i=0;i<arr.length;i++){ if(res.indexOf(arr[i])==-1){ res.push(arr[i]); } } for(var i=0;i<res.length;i++){ for(var j=0;j<arr.length;j++){ if(arr[j]==res[i]){ count++; } } sum.push(count); count=0; } console.log(res);//[3,1,2] for(var i=0;i<res.length;i++){ var str=(sum[i]%2==0)?"偶數(shù)":"奇數(shù)"; console.log(res[i]+"出現(xiàn)了"+sum[i]+"次"); console.log(res[i]+"出現(xiàn)了"+str+"次"); } </script> </body> </html>
阿里筆試-數(shù)組操作-找出兩個(gè)數(shù)組中不同的元素
<script type="text/javascript"> function diff(arr1,arr2){ var ress = []; var arr = arr1.concat(arr2); for(var i=0,len=arr.length;i<len;i++){ if((arr1.indexOf(arr[i])>=0 && arr2.indexOf(arr[i])<0) || (arr1.indexOf(arr[i])<0 && arr2.indexOf(arr[i])>=0)){ ress.push(arr[i]); } } return ress; } var arr1 = [1,2,3,5,7,6]; var arr2 = [1,2,5]; var res = diff(arr1,arr2); console.log(res);//[3, 7, 6] </script>
數(shù)組去重
方法1
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>數(shù)組去重01</title> </head> <body> <script type="text/javascript"> //給數(shù)組原型添加方法 Array.prototype.unique = function(){ var arr = []; for(var i=0,i=this.length;i<len;i++){ if(arr.indexOf(this[i]) == -1){ arr.push(this[i]); } } return arr; }; console.log([1,2,3,2,5,6,3].unique());//[1, 2, 3, 5, 6] </script> </body> </html>
方法2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>數(shù)組去重02</title> </head> <body> <script type="text/javascript"> Array.prototype.unique = function(){ var n = {}, r=[]; //n為哈希表,r為臨時(shí)數(shù)組 for(var i = 0; i < this.length; i++) //遍歷當(dāng)前數(shù)組 { if (!n[this[i]]) //如果hash表中沒(méi)有當(dāng)前項(xiàng) { n[this[i]] = true; //存入哈希表 r.push(this[i]); //把當(dāng)前數(shù)組的當(dāng)前項(xiàng)push到臨時(shí)數(shù)組里面 } } return r; } console.log([1,2,3,2,5,6,3].unique());//[1, 2, 3, 5, 6] </script> </body> </html>
方法3
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>數(shù)組去重</title> </head> <body> <script type="text/javascript"> Array.prototype.unique = function(){ var arr = [this[0]];//結(jié)果數(shù)組 for(var i=1;i<this.length;i++){//從第二項(xiàng)開(kāi)始遍歷 if(this.indexOf(this[i]) == i){ //如果當(dāng)前數(shù)組的第i項(xiàng)在當(dāng)前數(shù)組中第一次出現(xiàn)的位置不是i,那么表示第i項(xiàng)是重復(fù)的,忽略掉。否則存入結(jié)果數(shù)組 arr.push(this[i]); } } return arr; } console.log([1,2,3,4,2,3,4].unique());// [1, 2, 3, 4] </script> </body> </html>
方法4
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>filter</title> <link rel="stylesheet" href=""> </head> <body> <script type="text/javascript"> var arr = [4,5,3,2,3,4,5,1]; function fn(num){ var res = num.filter(function(item,index,array){ return num.indexOf(item) === index;//num.indexOf(item)將會(huì)返回元素在數(shù)組第一次出現(xiàn)的位置 //對(duì)于多次出現(xiàn)的元素,除第一次外,其他情況都返回false }); return res; } console.log(fn(arr));//[4, 5, 3, 2, 1] </script> </body> </html>
方法5
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Object 對(duì)象來(lái)當(dāng)做哈希表</title> <link rel="stylesheet" href=""> </head> <body> <script type="text/javascript"> function unique(a) { var obj = {}; return a.filter(function(item) {//filter會(huì)返回true的項(xiàng)組成的成員 return obj.hasOwnProperty(item) ? false : (obj[item] = true); }); } var a = [1, 1, 3, 2, 1, 2, 4]; var res = unique(a); console.log(res); // [1, 3, 2, 4] </script> </body> </html>
以上就是小編為大家?guī)?lái)的js數(shù)組操作方法總結(jié)(必看篇)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
基于d3.js/neovis.js/neod3.js實(shí)現(xiàn)鏈接neo4j圖形數(shù)據(jù)庫(kù)的圖像化顯示功能
neovis.js?由vis.js支持的圖形可視化以及來(lái)自Neo4j的數(shù)據(jù)。這篇文章主要介紹了基于d3.js/neovis.js/neod3.js實(shí)現(xiàn)鏈接neo4j圖形數(shù)據(jù)庫(kù)的圖像化顯示功能,需要的朋友可以參考下2022-02-02子窗口、父窗口和Silverlight之間的相互調(diào)用
前兩天做 silverlight 的東西,主頁(yè)面打開(kāi)一個(gè)子頁(yè)面,然后子頁(yè)面中包含一個(gè) silverlight 應(yīng)用程序那難免會(huì)涉及到他們?nèi)呦嗷フ{(diào)用的問(wèn)題2010-08-08JavaScript設(shè)計(jì)模式中的觀察者模式
這篇文章主要介紹了JavaScript設(shè)計(jì)模式中的觀察者模式,觀察者設(shè)計(jì)模式適用于監(jiān)聽(tīng)一對(duì)多的操作,例如監(jiān)聽(tīng)對(duì)象屬性的修改等等,觀察者模式能夠降低代碼耦合度,提升可擴(kuò)展性2022-06-06用javascript實(shí)現(xiàn)的電信鐵通(網(wǎng)通)自動(dòng)跳轉(zhuǎn)源代碼
用javascript實(shí)現(xiàn)的電信鐵通(網(wǎng)通)自動(dòng)跳轉(zhuǎn)源代碼...2007-11-11JavaScript實(shí)現(xiàn)word轉(zhuǎn)png的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)word轉(zhuǎn)png的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02關(guān)于Webpack dev server熱加載失敗的解決方法
下面小編就為大家分享一篇關(guān)于Webpack dev server熱加載失敗的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02javascript中contains是否包含功能實(shí)現(xiàn)代碼(擴(kuò)展字符、數(shù)組、dom)
原生JS中是有contains方法的,但只有dom元素的包含關(guān)系,這里腳本之家就為大家分享一下擴(kuò)展的字符string與數(shù)組arr的擴(kuò)展代碼2020-04-04javascript實(shí)現(xiàn)復(fù)選框選中屬性
本文給大家介紹的是一篇國(guó)外網(wǎng)友寫的博客,講解的是關(guān)于實(shí)現(xiàn)復(fù)選框選中屬性的問(wèn)題,感覺(jué)非常不錯(cuò),翻譯過(guò)來(lái)推薦給大家,希望小伙伴們能夠喜歡。2015-03-03