javascript对象——数组对象

1.数组(Array)

        数组(Array):就是一组数据的集合,存储在单个变量下的优雅的方式

 2 创建数组
            1.)利用new创建数组
            var arr1 = new Array(2)
           (里面只有一个值)这里的2 表示 数组的长度为2,里面有两个空的数组元素
            var arr1 = new Array(2, 3)

            里面放两个值及以上,就相当于创建了一个数组)等价于使用字面量创建[2,3],这样写表示里面有两个元素,是2和3
            console.log(arr1)


            2.)利用数字字面量创建数组 []
            var arr = [];
            创建一个空的数组

            数组里面的数值之间可以通过逗号进行分割
            var arr1 = [1, 2, 'pink', true]
            这种声明数组并赋值我们称之为数组的初始化
            数组里面的数据  比如1,2,'pink老师',true ,我们称之为数组元素.

3.检测是否为数组

         1)instanceof 运算符    它可以用来检测是否为数组

            var arr = [];
			console.log(arr instanceof Array);

案例:翻转数组:

            // 翻转数组补充
			function reserve(arr) {
				// if (arr instanceof Array) {
					//第一种判断是否为数组的方式
					if(Array.isArray(arr)){
						//第二种判断是否为数组的方式
					var newArr = [];
					newArr.length;
					for (var i = arr.length - 1 ; i >= 0; i--) {
						newArr[newArr.length] = arr[i];
					}
					return newArr;
				} else {
					return '这个参数要求必须是数组格式'
				}
			}
			console.log(reserve([1,3,4,5,6]));
			//正常将数组进行翻转然后输出
			console.log(reserve(1,3,4,5,6));
			//因为该数组传入的不是数组,所以正常打印输出这个参数要求必须是数组格式

         2)Array.isArray() (H5新增  ie9以上的版本才可以支持) 也是检测是否为数组  返回值  只有false 和 true

            var arr=[];
			var obj={};
			console.log(Array.isArray(arr));  //输出arr是一个数组   true
			console.log(Array.isArray(obj));   // 输出obj不是一个数组  false

 4.添加数组元素

         1)push()  在我们数组的末尾 添加一个或者多个数组元素 push 在末尾进行追加

            var arr=[1,2,3];
			arr.push(4,'pink')
			console.log(arr)
			// 追加的元素在push里面用逗号进行分开

注意点:1)push 是可以在数组末尾追加新的元素
               2)push() 参数在括号里面直接写数组元素就可以了
               3)push 完毕之后 ,返回的结果是新数组的长度
               4) 原数组也会发生变化

         2)unshift  在我们数组的开头,添加一个或者多个数组元素  unshift是在数组开头进行添加

	        arr.unshift('red','pink')
			console.log(arr)
			// 这里进行打印同一个数组,会对之前的数组进行追加

 注意点: 1)unshift 是可以在数组开头追加新的元素
                 2)unshift() 参数在括号里面直接写数组元素就可以了
                 3)unshift 完毕之后 ,返回的结果是新数组的长度
                 4) 原数组也会发生变化

5,删除数组元素

         1)pop()他可以删除数组的最后一个元素

            console.log(arr.pop());
			console.log(arr);

 注意点:1)pop 是可以删除数组的最后一个元素,记住一次只能删除一个元素
                2)pop() 是没有参数的
                3)pop完毕之后 ,返回的结果删除的那个数组
                4) 原数组也会发生变化

        2)shift() 他可以删除数组的第一个元素

            console.log(arr.shift());
			console.log(arr);

 注意点: 1)shift 是可以删除数组的第一个元素,记住一次只能删除一个元素
                 2)shift() 是没有参数的
                 3)shift 完毕之后 ,返回的结果删除的那个数组
                 4) 原数组也会发生变化

6.         splice(star,num,insert)  通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
           star 删除元素开始的位置  num删除元素的个数  insert 是想要插入的元素

            var arr11=[1,2,3];
			var splice=arr11.splice(2,1);
			// splice(stare,num)  里面的第一个数字代表的是,删除数组元素的起始位置,第二个数字是需要删除几个元素
			console.log(splice);
			console.log(arr11)
			
			var arr12=[1,2,3,4,5,6,7,8,9];
			var splice=arr12.splice(2,1,'red'); 
			// 从第二个元素开始,删除一个元素,并追加为red
			console.log(arr12)

 7. slice  截取指定开始位置到结束位置的字符串。

var str18 = ['ab','aas','dff','ggg','hhj','jkk','gfd','dss','sss',3,4,4,3,3,3,4];
			console.log(str18.slice(2, 10));
			// slice 的截取数值的方式这里面的数字2是开始的索引号位置,10是截取的结束索引号位置,但是截取的方式为[start,end)
			
			var str19 = ['ab','aas','dff','ggg','hhj','jkk','gfd','dss','sss',3,4,4,3,3,3,4];
			console.log(str19.slice(-4));
			//表示提取原数组中的倒数第四个元素到最后一个元素(包含最后一个元素)。
			var str20 = ['ab','aas','dff','ggg','hhj','jkk','gfd','dss','sss',3,4,4,3,3,3,4];
			console.log(str20.slice(5, -2));
			//表示从第索引号为5的元素开始抽取,抽取到数组的倒数第二个元素(但是不包含倒数第二个元素)
			// slice的参数不支持slice(begin,end)  begin为负数,end为正数,因为slice里面为负值时,是从倒数第一个元素开始抽取,如果抽取开始的位置为负,停止的位置为正,则不会显示结果

8.   concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

	        var arr21=['a','b','c'];
			var arr22=[1,2,3];
			var arr23=arr21.concat(arr22);
			console.log(arr23);
			

    小练习:筛选数组元素案例:要求将[1500,1200,2000,2100,1800]里面大于2000的删除,剩余的数字放到新的数组里面

            var arr=[1500,1200,2000,2100,1800];
			var newArr=[];
			for (var i=0 ;i

 

9.数组排序

        1)翻转数组   reverse

var arr=['关羽','张飞','马超','赵云','黄忠','刘备','诸葛亮','姜维','pink'];
			arr.reverse();
			console.log(arr);

 

        2)数组排序(冒泡排序)

            var arr1=[1,4,56,87,34,97];
			arr1.sort(function(a,b){
				return a - b;  //按照升序的顺序排列
				// return b - a;  //按照降序的顺序排列
			});
			console.log(arr1);

 

10.获取索引值的方法

        1)indexOf(数组元素,起始位置)  这里的起始位置,就是从所要求开始查找的地方进行查找

        作用:1)作用就是返回该元素的索引号  从前面开始查找
                   2)它只返回一个第一个满足条件的索引号
                   3)它如果在该数组里面找不到元素,返回的就是 -1

var arr=['关羽','张飞','马超','赵云','黄忠','刘备','诸葛亮','姜维','pink'];
			console.log(arr.indexOf('诸葛亮'));

        2)lastIndexOf(数组元素,起始位置)  

        作用:1)作用就是返回该元素的索引号  从后面开始查找
                   2)它只返回一个第一个满足条件的索引号
                   3)它如果在该数组里面找不到元素,返回的就是 -1

            console.log(arr.lastIndexOf('诸葛亮'));
			//索引号的顺序是不会更改的,只不过lastIndexOf是从后面开始查找

 

11.数组转化为字符串

1)toString() 将我们的数组转换为字符串

	    var arr=[1,2,3];
		console.log(arr.toString());
		// 这里输出的结果就是 1,2,3 这里是转换为字符串进行输出

 2)join(分隔符)

        var arr1=['green','blue','pink'];
		console.log(arr1.join());
		// 输出的结果为:green,blue,pink
		//里面没有添加分隔符,默认情况是使用逗号进行分割
		console.log(arr1.join('-'));
		// 输出的结果为:green-blue-pink
		//分隔符使用的是-进行分隔,打印输出的时候就是使用 - 进行分隔

 

数组去重案例:(重点)  ['c','a','z','a','x','x','c','b','a']对该数组去除重复数据

        核心算法:我们遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有,我们就添加,否则就不添加
       如何判断元素是否存在:利用数组 indexOf(数组元素),如果返回的是-1 就说明数组里面没有该数组元素,返回值不是-1,就说明里面已经存在该数组元素。

        function unique(arr){
			var newArr=[];
			for(var i=0 ; i

 

你可能感兴趣的:(javascript,前端)