JS中Array是用于构造数组的全局对象,是按次序排列的一组值,其原型链中包含Array.prototype.let f = ['a','b']的结果与let f2 = new Array('a','b')相同,但不相等.
Array的两种用法
-
var a = Array(3)生成了有三个undefined值的数组. -
var a = Array(3,3)生成长度为2,具有两个值为3的成员.
number\string\boolean是js中的基本类型,特点是:
-
用
new创建变量时返回的是基本类型. - 不用
new创建时返回一个复杂类型(对象).
new都会生成一个对象.
伪数组:如果该对象的原型链中无
Array.prototype就是伪数组(如arguments),如果伪数组的下标符合0,1,2...的形式也可使用数组的遍历方式来进行遍历.
数组常用api:
- .forEach( ) forEach方法接受一个函数
- .sort( ha ) 参数ha是可选参数,必须为函数.
sort()方法默认按照unicode的编码升序来排序,会改变自身的顺序.
var a = [2,5,8,1,4,3]; a.sort(); //1, 2, 3, 4, 5, 8 a.sort(function(x,y) { return x-y;}) //1, 2, 3, 4, 5, 8 a.sort(function(x,y) { return y-x;}) //8, 5, 4, 3, 2, 1如果想对一些名词排序,可以为其'关联'相关数值,如:
a = ['red','green','blue']; score = { 'red':1, 'green':2, 'blue':3 } a.sort(function(x,y){return score[x] - score[y]}); //结果就是["red", "green", "blue"] - .join( )
var a = [1,2,3]; a.join(','); //以逗号分隔数组元素,产生一个字符串"1,2,3",a本身未改变Tips:数字变字符串:1+'',数字1就会变成字符串'1'. 数组名+'' 也可产生产生一个字符串副本.
- .concat()
var a = [1,2,3]; var b = [4,5,6]; a.concat(b); //结果是[1, 2, 3, 4, 5, 6] var c = a.concat(b); //则将链接结果保存到c中利用
concat()复制并产生一个新数组var d = a.concat([]); //d === [1,2,3] - .map()
map()方法与forEach()方法类似.区别是前者有返回值,而后者无返回值. 用法如下:var a = [1,2,3]; a.map(function(value,key){ return value * 2; }) //得到结果是[2, 4, 6] a.map(value =>value*2); //此种方法也可得到[2, 4, 6]map方法还可与filter方法连用
a.filter(function(value,key){ return value % 2 === 0; }).map(function(value){return value*value}) //得到[4, 16, 36, 64, 100] - .filter()
var a =[1,2,3,4,5,6,7,8,9,10]; a.filter(function(value,key){ return value % 2 === 0; }) //得到偶数[2, 4, 6, 8, 10] - .reduce()
.reduce(function(previousSum,currentValue),primitiveValue)第一个值是一个函数,第二个值是初始值.function中的第一个值是当前和,第二个值是当前值.var a =[1,2,3,4,5,6,7,8,9,10]; a.reduce(function(sum,n){ return sum+n; },0) //结果是55
a = [1,2,3,4,5,6,];
function logArrEle(x,y){
console.log('value:'+x,'index:'+y);
}
a.forEach(logArrEle);
或者写成:
a.forEach(function logArrEle(element, index) {
console.log("a[" + index + "] = " + element);
});
又或者:
a.forEach(function(x,y){
console.log(x,y);
})
即可打印出数组元素.