险些一切的编程言语都原生支撑数组范例,由于数组是最简朴的内存数据结构。
它存储一系列同一种数据范例的值,然则在javascript里能够在数组里保留差别范例的值,然则我们最好照样要恪守最好实践,不要那末做。
- 建立和初始化,javascript声明,建立和初始化数组都很简朴,就像下面如许:
var array = new Array();
var array = new Array(7); //建立长度为7的数组
var array = new Array(‘item1′,’item2′,’item3’);
以上是运用new关键字来建立数组,然则这并非最好的体式格局,最经常使用的数组建立体式格局只需 用一个[]就能够了。以下所示:
var array = [];
var array = ['item1','item2','item3'];
- 增加和删除元素
var numbers = [1,2,3,4,5,6,7,8,9];
numbers.push(10);//把元素增加到末端
numbers.unshift(11);//把元素增加到首位
numbers.pop();//删除末了一名元素
numbers.shift();//删除第一名元素
numbers.splice(5,3);//删除从数组索引5最先的三个元素(numbers里的6,7,8三个元素被删撤除),需求中经常须要删除指定的元素,可求出该元素索引值后spleic(x,1)
number.splice(5,0,2,3,4);//从索引是5的元素最先删除0个元素,然后吧2,3,4三个元素增加到索引是5的元素背面 - 兼并数组
numbers.concat(num1,num2)//num1,num2被兼并到numbers中 数组迭代
every,filter,foreach,some,map这几个要领都可接收一个函数作为参数。
如:number.every(function(number){console.log('----every number----',numbrt); })
every遍历数组中每一个元素,碰到使函数返回值为false的元素,every实行完毕;
some与every相反,碰到使函数返回值为true的h元素会实行完毕;
forEach会迭代一切元素,与运用for轮回的效果雷同;
map和filter要领都很会返回一个新数组,差别的map会返回一切元素遍历后的效果,filter只返回效果为true的效果;搜刮和排序
numbers.reverse()//倒序
numbers.sort()//此要领对数组做排序时,把元素默认成字符串举行互相比较,我们能够传人本身的比较函数,所以能够如许写:
numbers.sort(function(a,b){return a-b; });
这段代码当b大于a时,会返回负数,反之则返回正数,假如相称的话就会返回0.返回负数时申明a比b小,如许sort就会依据返回值状况给数组做排序。
indexof要领返回与参数婚配的第一个元素的索引,lastIndexOf返回与参数婚配的末了一个元素索引。
ES6中供应了两个新的要领find()和findIndex()。它们的参数是一个回调函数,一切数组成员顺次实行该回调函数,直到找出第一个返回值为true的成员,然后find()要领会返回该成员,findIndex()返回该成员的位置。- 输出数组为字符串
numbers.toString()//一切元素输出为一个字符串
numbers.join(‘,’)//一切元素用,离隔,输出为一个字符串