06 javascript引用类型--数组类型

1.定义数组

  •  第一种方式
var arr=new Array();
  • 第二种方式
  var arr1=[1,2,3,'ljj',true,new Date()];
  • 注意点:
var arr1=[1,2,3,'ljj',true,new Date()];
console.log(arr1.length);//6
arr1.length=5;
console.log(arr1);//[ 1, 2, 3, 'ljj', true ]这个地方再执行的时候隐式的调用toString()方法

 

2.数组方法

  • push
//push:往数组末尾添加数组元素
var arr=[1,2];
arr.push(3,4);
console.log(arr);//[ 1, 2, 3, 4 ]
var result=arr.push(5);
console.log(result);//5 返回的是数组的长度
  • pop
//pop从数组末尾删除元素
var arr=[1,2,3,4];
var result=arr.pop();
console.log(arr);//[ 1, 2, 3 ]
console.log(result);//4 返回值是删除的元素
  • unshift
//unshift向数组头部添加元素
var arr=[1,2,3,4];
var result=arr.unshift(10);
console.log(arr);//[ 10, 1, 2, 3, 4 ]
console.log(result);//5 返回数组长度
  •  shift
//shift向数组头部删除一个元素
var arr=[1,2,3,4];
var result=arr.shift();
console.log(arr);//[ 2, 3, 4 ]
console.log(result);//1 返回删除的元素
  • splice
//第一个参数:起始位置
//第二个参数:截取个数
//从第三个参数开始,表示追加的新元素
//操作数组本身
var arr=[1,2,3,4,5];
arr.splice(1,2,3,4,5);
console.log(arr);//[ 1, 3, 4, 5, 4, 5 ]
  • slice
//slice 截取范围 (左闭右开区间),返回截取的内容
//不操作数组本身
var arr=[1,2,3,4,5];
var brr=arr.slice(2,4);
console.log(arr);//[ 1, 2, 3, 4, 5 ]
  • concat
//concat 将数组合并粘连
//不操作数组本身
var arr=[1,2];
var brr=[4,5];
var crr=arr.concat(brr);
console.log(arr);//[ 1, 2 ]
console.log(crr);//[ 1, 2, 4, 5 ]
  • join
//join 在数组每个元素之间加入内容
//不操作数组本身
var arr=[1,2];
var result=arr.join('-');
console.log(arr);//[ 1, 2 ]
console.log(result);//1-2
  • sort
//按照首位数数字排序
var arr=[1,2,5,6,3,7];
var brr=[55,77,3,7,10];
arr.sort();
brr.sort();
console.log(arr);//[ 1, 2, 3, 5, 6, 7 ]
console.log(brr);//[ 10, 3, 55, 7, 77 ]
  • reverse
//按位置倒叙,不是大小!!!!
var arr=[1,2,5,6,3,7];
var brr=[55,77,3,7,10];
arr.reverse();
brr.reverse();
console.log(arr);//[ 7, 3, 6, 5, 2, 1 ]
console.log(brr);//[ 10, 7, 3, 77, 55 ]
  • 多位数字正确排序
var brr=[55,77,3,7,10];
function compare(val1,val2){
    if(val1<val2){
        return -1;
    }else if(val1>val2){
        return 1;
    }else{
        return 0;
    }
}
brr.sort(compare);
console.log(brr);//[ 3, 7, 10, 55, 77 ]

3.更多方法

  • indexOf
//只有一个参数的时候表示此元素在数组中的位置
var arr=[1,2,3,4,5,6,7,8,4];
var index=arr.indexOf(4);
console.log(index);//3

//两个参数的时候,第一个参数表示值,第二个参数表示查找的起始位置 var arr=[1,2,3,4,5,6,7,8,4]; var index=arr.indexOf(4,5); console.log(index);//8
  • lastIndexOf
//只有一个参数的时候表示此元素在数组中的位置,倒叙查找
var arr=[1,2,3,4,5,6,7,8,4];
var index=arr.lastIndexOf(4);
console.log(index);//8

//两个参数的时候,第一个参数表示值,第二个参数表示查找的起始位置,倒叙查找 var arr=[1,2,3,4,5,6,7,8,4]; var index=arr.indexOf(4,0); console.log(index);//3
  •  every
//对于数组每一个元素都进行遍历进行一个函数的运行,如果都返回true,返回true
//有一项为false,返回false
var arr=[1,2,3,4,5,6,7,8,4];
var result=arr.every(function (item,index,arr) {
    return item>2;
})
console.log(result);//false
  •  filter
//对于数组每一个元素按照条件过滤
var arr=[1,2,3,4,5,6,7,8,4];
var result=arr.filter(function (item,index,arr) {
    return item>5;
})
console.log(result);//[ 6, 7, 8 ]
  •  forEach
//循环数组的每一项的值,并执行一个方法
var arr=[1,2,3,4,5,6,7,8,4];
var brr=[];
var result=arr.filter(function (item,index,arr) {
    brr.push(item*2);
})
console.log(brr);//[ 2, 4, 6, 8, 10, 12, 14, 16, 8 ]
  • some
//对于数组每一个元素都进行遍历进行一个函数的运行,如果都返回false,返回false
//有一项为true,返回true
var arr=[1,2,3,4,5,6,7,8,4];
var result=arr.some(function (item,index,arr) {
    return item>2;
})
console.log(result);//true
  • map
//对于数组中的每一个元素进行一个函数的运行,函数执行完毕之后,将新的结果返回
var arr=[1,2,3,4,5,6,7,8,4];
var result=arr.map(function (item,index,arr) {
   return item*2;
})
console.log(result);//[ 2, 4, 6, 8, 10, 12, 14, 16, 8 ]
  • reduce
//第一个参数:前一个值
//第二个参数:当前值
//第三个参数:索引
//第四个参数:数组本身
var arr=[1,2,3,4];
var result=arr.reduce(function (pre,cur,index,arr) {
    return pre+cur;
})
console.log(result);//10
  • reduceRight
//和reduce差不多,只是是从右边开始运算的
var arr=[1,2,3,4];
var result=arr.reduceRight(function (pre,cur,index,arr) {
    return pre+cur;
})
console.log(result);//10
posted @ 2016-11-08 13:38  小妞妞yeah  阅读(162)  评论(0编辑  收藏  举报