javascript 数组的常用方法

数组

数组的定义

数组就是在内存中开辟出一块连续的空间。
数组也是一个变量,可以存储一连串的变量/值。
数组的大小可以动态的调整,并且没有长度的限制。
数组可以存储任意类型的数据。

创建数组

var arr = new Array();  // 创建一个数组
var arr = new Array([size]);  // 创建一个数组并指定长度,注意不是上限,是长度
var arr = new Array(element0, element1, ..., elementn);  // 创建一个数组并赋值
var arr = [] // 字面量创建数组
var arr = Array.of(element0, element1, ..., elementn)  // 将一组值转换成数组

数组的遍历

所谓遍历,是指沿着某条搜索路线(索引),依次对集合(数组)中每个结点(数组元素)均做一次且仅做一次访问。

  var arr = [12,'hello',true,20,null,'abc'];
    // 挨个访问
    arr[0];
    arr[1];
    arr[2];
    arr[3];
    arr[4];
    arr[5];

每一个数组对象都有一个属性:length。 length属性表示的是该数组的长度,具体说就是数组中拥有多少个元素。

   var arr = [1,2,3,4,5,6];
    // 数组中拥有6个元素
    console.log(arr.length);// 6

利用数组的length属性进行循环遍历操作。

 	var arr = [1,2,3,4,5,6]
    // i=0,正好契合数组的最小索引
    // i<arr.length,所以i能够取得的最大值为:arr.length-1,正好契合数组的最大索引
    for( var i=0;i<arr.length;i++ ){
        console.log(arr[i]);// arr[0], arr[1], arr[2]...
    }

for…in循环

		var arr = [1,2,3,4,5,6]
		 // 变量item就是数组的索引号
	    for( var item in arr ){
	        console.log(item);
	        console.log(arr[item]);
	    }

数组的方法

  • 添加删除

push() 向数组末尾添加一个或多个元素,并返回修改后数组的长度

	var arr = [1, 2, 3];
	arr.push(4);
	
	console.log(arr); // [ 1, 2, 3, 4 ]
	console.log(arr.length); // 4

unshift() 在数组头部添加一个或者多个元素,并且返回数组的新长度

var arr = [1, 2, 3];
var a = arr.unshift(0);

console.log(a); // 4
console.log(arr); // [ 0, 1, 2, 3 ]

pop() 删除数组尾部的最后一个元素,并且将这个被删除的元素返回

var arr = [1, 2, 3];
var a = arr.pop();

console.log(arr); // [ 1, 2]
console.log(a); // 3

shift() 删除数组的第一个元素,并且返回被删除的元素

var arr = [1, 2, 3];
var a = arr.shift();

console.log(a); // 1
console.log(arr); // [ 2, 3 ]
  • 排序/反转

sort() 默认按字符编码的顺序排列,非string类型会自动转换为string,可自定义比较规则

	var arr = [1, 5, 10, 15];
	
	console.log(arr.sort()); // [ 1, 10, 15, 5 ] 比较的是转换的字符串值

	// 冒泡排序
       function sorts(arr){
           var len=arr.length;
           for(var i=0;i<len;i++){
               for(var j=0;j<len-i;j++){
                    if(arr[j]>arr[j+1]){
                        var temp=arr[j+1];
                        arr[j+1]=arr[j];
                        arr[j]=temp;

                    }
               }
           }
       }

reverse() 将数组元素倒序排列

var arr = [1, 2, 3];
arr.reverse();

console.log(arr); // [ 3, 2, 1 ]
  • 拼接

join() 将数组的每个元素以指定的字符连接形成新字符串返回

		var  arr=[1,2,3,4,5];
        // 将数组合并为字符串返回,默认使用,连接
        // var str=arr.join();

        // 在这里join的参数是字符串的连接符
        // var str=arr.join("|");

        // ""作为连接符,会将数组元素首尾相连成为字符串
        // var str=arr.join("");

concat() 将多个数组拼接成一个数组

		var arr=[2,4,6,8,10];
	
      	var arr1=arr.concat();
      	console.log(arr1) // [2,4,6,8,10];

  • 选取/截取

slice() 从某个已有的数组返回选定的元素


var  arr = [1,3,4,5,6]
 
slice() // 截取指定长度的数组
 
参数1:起始位置
参数2:结束位置
    
arr.slice(1) // [3, 4, 5, 6,]
 
如果只传入一个参数时该方法会从开始位置截取到数组结束的位置
 
arr.slice(1,3) // [3, 4]

splice() 从数组中删除项目,然后返回被删除的项目,也可以用作替换操作

var arr=[1,2,3,4,5];
arr.splice(从什么位置开始,删除多少个元素,要插入的元素);

var arr1=arr.splice();  //没有任何参数时,返回一个空数组

 var arr1=arr.splice(0,3); //从第0位开始删除3个元素,返回到新数组arr1
 
 var arr1=arr.splice(0,1,-1);从数组的第0位开始,删除1个元素,并且在这个位置插入一个元素 -1,替换
  • 查找

indexOf() 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。.

var arr = [1, 2, 3, 2, 1];

// 从0开始查询值为2的位置
console.log(arr.indexOf(2)); // 1
// 从索引为2开始查询值为2的位置
console.log(arr.indexOf(2, 2)); // 3

includes() 用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。

  • 遍历
    forEach():对数组的每个元素执行一次提供的函数。
 	//forEach 没有返回值
        var arr2=arr.forEach(function(item,index,arr){
	});
            console.log(arr2);

map() 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

	// map会返回一个与原来数组长度相等的新数组
        var arr=[3,5,7,9,12,4,6]
         var arr1=arr.map(function(item,index,arr){
                // console.log(item,index,arr);
                return "a"
                
            })
            console.log(arr1);
  • 筛选

filter() 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组

	var arr = [1, 2, 3, 4, 5, 6];
	
	// 取数组中大于3的值重新组成新数组
	let newArr = arr.filter(value => value > 3);
	console.log(newArr); // [ 4, 5, 6 ]
  • 转换

toString():将数组转换为字符串
valueOf():返回数组对象本身,一般会自动调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值