js基础---数组方法
生活随笔
收集整理的這篇文章主要介紹了
js基础---数组方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)組數(shù)據(jù)的排序及去重
sort無形參的排序方式 arr1=[2,12,3,15];var a=arr1.sort();console.log(arr1);console.log(a);//排序會改變原本數(shù)組是順序,是依據(jù)首個字符的大小開始排名sort有形參的排序方式方法1arr2=[2,12,3,15];var b=arr2.sort(function(n1,n2){if(n1>n2){return 1}})/*自定義形參n1>n2時,return正值是指將n1與n2調(diào)換位置,即數(shù)據(jù)從小到大排列只有將function(n1,n2)改為(n2,n1)才能夠?qū)崿F(xiàn)從大到小排列的效果,修改其他位置均不能達到效果*/console.log(arr2);console.log(b);方法2arr3=[2,12,3,15];var c=arr3.sort(function(n2,n1){if(n1>n2){return n1-n2}})/*自定義形參n1>n2時,return正值是指將n1與n2調(diào)換位置,即數(shù)據(jù)從小到大排列,只有將function(n1,n2)改為(n2,n1)才能夠?qū)崿F(xiàn)從大到小排列的效果,修改其他位置均不能達到效果*/console.log(arr3);console.log(c);數(shù)組中的數(shù)據(jù)逆序排列arr4=[2,12,3,15];var d=arr4.reverse();console.log(arr4);console.log(d);會更改原本數(shù)組的順序?qū)?shù)組以單個數(shù)據(jù)的形式添加入新的 數(shù)組arr5=[1,2,3];arr6=[5,6,7];var arr7=arr5.concat(arr6);console.log(arr5);console.log(arr6);console.log(arr7);//備注原本兩個數(shù)組中的數(shù)據(jù)不變arr7為新生成的數(shù)組
數(shù)組冒泡排序
arr=[2,11,9,6,8] ;function ss(arr){var temp;for(var i=0;i<arr.length;i ){for(var j=0;j<arr.length-1-i;j ){if(arr[j]>arr[j 1]){temp=arr[j];arr[j]=arr[j 1];arr[j 1]=temp;} }}}ss(arr);console.log(arr);
數(shù)組去重 1
var arr=[12,3,4,6,3,5,12]; function unique1(array){ var n = []; for(var i = 0; i < array.length; i ){ if (n.indexOf(array[i]) == -1) n.push(array[i]); } return n; }var a=unique1(arr);console.log(a);
? ?數(shù)組去重? ? 2
var obj={};var newarr=new Array();for(var i=0;i<arr.length;i ){if(!obj[arr[i]]==1){obj[arr[i]]=1;newarr.push(arr[i])}}
數(shù)組的增刪改查及字符串數(shù)組轉(zhuǎn)換
數(shù)組中添加后面多個數(shù)據(jù)var arr1=new Array;arr1[0]=1; var a=arr1.push(5,6);console.log(arr1);console.log(a); 數(shù)組中刪除最后一個數(shù)據(jù)arr2=[1,2,3,4,5];var b=arr2.pop();console.log(arr2);console.log(b);數(shù)組中添加前面多個數(shù)據(jù)arr3=[1,2,3]; var c=arr3.unshift(5,6);console.log(arr3);console.log(c);
數(shù)組前面刪除一個數(shù)據(jù)arr4=[1,2,3]; var d=arr4.shift();console.log(arr4);console.log(d);復合數(shù)組(也叫2維數(shù)組,現(xiàn)在很少用)arrwrap=[["xu","xu"],["dan","dan"],["dan","dan"]];console.log(arrwrap[0]);console.log(arrwrap[0][0]);簡單數(shù)組之中字符的鏈接arr5=["xu","dan","dan"];var e=arr5.join("_");console.log(arr5);console.log(e);將字符串拆分為數(shù)組var f="192.110.124.189";var arr6=f.split(".");console.log(f);console.log(arr6);數(shù)組中從某個位置添加和刪除多個數(shù)據(jù)/數(shù)組中從某個位置刪除多個數(shù)據(jù)var arr7=[1,2,3,4,5,6,7];var g=arr7.splice(2,3);console.log(arr7);console.log(g);//arr7有改動,為刪除之后的數(shù)組剩余的數(shù)據(jù)//g刪除的數(shù)據(jù) 數(shù)組中從某個位置添加數(shù)據(jù)var arr8=[1,2,3,4,5,6,7];var h=arr8.splice(2,0,"a","a","a","a","a","a");console.log(arr8);console.log(h);//arr8有改動,為添加之后的數(shù)組剩余的數(shù)據(jù)//h刪除的數(shù)據(jù)
小拓展function pri(){console.log(this);console.log(arguments);};pri();// function pri(){for(var i=0;i<arguments.length;i ){console.log(arguments[i])}} // function sum(){sum=0; for(var i=0;i<arguments.length;i ){sum =arguments[i]}return sum} // pri(1,2,3); // console.log(sum(1,2,3));
es5及es6數(shù)組新方法(2009年及2015年)
(indexOf、forEach、map、filter、every、find、some、reduce) var arr = [{name:'iphone x', price:8000}, {name:'iphone 7', price:5000}, {name:'iphone 6', price:2000}]arr.forEach(function(val, index){console.log(val, index);})// map可以重組一個數(shù)組var list = arr.map(function(val, index){var obj = {}// 對象拷貝Object.assign(obj, val)obj.lock = 0return obj}) console.log(list, arr);// 過濾一些不要的數(shù)據(jù),生成一個新數(shù)組var newList = arr.filter(function(val, index){// 過濾條件return val.price < 6000})console.log(newList);// 只能找到一個元素var prod = arr.find(function(val, index){// 找到元素的條件return val.name == 'iphone 6'})console.log(prod);
更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com
sort無形參的排序方式 arr1=[2,12,3,15];var a=arr1.sort();console.log(arr1);console.log(a);//排序會改變原本數(shù)組是順序,是依據(jù)首個字符的大小開始排名sort有形參的排序方式方法1arr2=[2,12,3,15];var b=arr2.sort(function(n1,n2){if(n1>n2){return 1}})/*自定義形參n1>n2時,return正值是指將n1與n2調(diào)換位置,即數(shù)據(jù)從小到大排列只有將function(n1,n2)改為(n2,n1)才能夠?qū)崿F(xiàn)從大到小排列的效果,修改其他位置均不能達到效果*/console.log(arr2);console.log(b);方法2arr3=[2,12,3,15];var c=arr3.sort(function(n2,n1){if(n1>n2){return n1-n2}})/*自定義形參n1>n2時,return正值是指將n1與n2調(diào)換位置,即數(shù)據(jù)從小到大排列,只有將function(n1,n2)改為(n2,n1)才能夠?qū)崿F(xiàn)從大到小排列的效果,修改其他位置均不能達到效果*/console.log(arr3);console.log(c);數(shù)組中的數(shù)據(jù)逆序排列arr4=[2,12,3,15];var d=arr4.reverse();console.log(arr4);console.log(d);會更改原本數(shù)組的順序?qū)?shù)組以單個數(shù)據(jù)的形式添加入新的 數(shù)組arr5=[1,2,3];arr6=[5,6,7];var arr7=arr5.concat(arr6);console.log(arr5);console.log(arr6);console.log(arr7);//備注原本兩個數(shù)組中的數(shù)據(jù)不變arr7為新生成的數(shù)組
數(shù)組冒泡排序
arr=[2,11,9,6,8] ;function ss(arr){var temp;for(var i=0;i<arr.length;i ){for(var j=0;j<arr.length-1-i;j ){if(arr[j]>arr[j 1]){temp=arr[j];arr[j]=arr[j 1];arr[j 1]=temp;} }}}ss(arr);console.log(arr);
數(shù)組去重 1
var arr=[12,3,4,6,3,5,12]; function unique1(array){ var n = []; for(var i = 0; i < array.length; i ){ if (n.indexOf(array[i]) == -1) n.push(array[i]); } return n; }var a=unique1(arr);console.log(a);
? ?數(shù)組去重? ? 2
var obj={};var newarr=new Array();for(var i=0;i<arr.length;i ){if(!obj[arr[i]]==1){obj[arr[i]]=1;newarr.push(arr[i])}}
數(shù)組的增刪改查及字符串數(shù)組轉(zhuǎn)換
數(shù)組中添加后面多個數(shù)據(jù)var arr1=new Array;arr1[0]=1; var a=arr1.push(5,6);console.log(arr1);console.log(a); 數(shù)組中刪除最后一個數(shù)據(jù)arr2=[1,2,3,4,5];var b=arr2.pop();console.log(arr2);console.log(b);數(shù)組中添加前面多個數(shù)據(jù)arr3=[1,2,3]; var c=arr3.unshift(5,6);console.log(arr3);console.log(c);
數(shù)組前面刪除一個數(shù)據(jù)arr4=[1,2,3]; var d=arr4.shift();console.log(arr4);console.log(d);復合數(shù)組(也叫2維數(shù)組,現(xiàn)在很少用)arrwrap=[["xu","xu"],["dan","dan"],["dan","dan"]];console.log(arrwrap[0]);console.log(arrwrap[0][0]);簡單數(shù)組之中字符的鏈接arr5=["xu","dan","dan"];var e=arr5.join("_");console.log(arr5);console.log(e);將字符串拆分為數(shù)組var f="192.110.124.189";var arr6=f.split(".");console.log(f);console.log(arr6);數(shù)組中從某個位置添加和刪除多個數(shù)據(jù)/數(shù)組中從某個位置刪除多個數(shù)據(jù)var arr7=[1,2,3,4,5,6,7];var g=arr7.splice(2,3);console.log(arr7);console.log(g);//arr7有改動,為刪除之后的數(shù)組剩余的數(shù)據(jù)//g刪除的數(shù)據(jù) 數(shù)組中從某個位置添加數(shù)據(jù)var arr8=[1,2,3,4,5,6,7];var h=arr8.splice(2,0,"a","a","a","a","a","a");console.log(arr8);console.log(h);//arr8有改動,為添加之后的數(shù)組剩余的數(shù)據(jù)//h刪除的數(shù)據(jù)
小拓展function pri(){console.log(this);console.log(arguments);};pri();// function pri(){for(var i=0;i<arguments.length;i ){console.log(arguments[i])}} // function sum(){sum=0; for(var i=0;i<arguments.length;i ){sum =arguments[i]}return sum} // pri(1,2,3); // console.log(sum(1,2,3));
es5及es6數(shù)組新方法(2009年及2015年)
(indexOf、forEach、map、filter、every、find、some、reduce) var arr = [{name:'iphone x', price:8000}, {name:'iphone 7', price:5000}, {name:'iphone 6', price:2000}]arr.forEach(function(val, index){console.log(val, index);})// map可以重組一個數(shù)組var list = arr.map(function(val, index){var obj = {}// 對象拷貝Object.assign(obj, val)obj.lock = 0return obj}) console.log(list, arr);// 過濾一些不要的數(shù)據(jù),生成一個新數(shù)組var newList = arr.filter(function(val, index){// 過濾條件return val.price < 6000})console.log(newList);// 只能找到一個元素var prod = arr.find(function(val, index){// 找到元素的條件return val.name == 'iphone 6'})console.log(prod);
更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com
總結
以上是生活随笔為你收集整理的js基础---数组方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 元素属性的添加删除(原生js)
- 下一篇: 正则表达式 小结