数组的简单复习

概念:一类或不同类型数据的集合;
创建方法:1.内置构造函数创建 let arr=new arr();2.字面量创建数组let arr=[];
数组的简单清空方法:arr=[];arr.length=0; 值传递与引用类型(地址传递);
数组的遍历:for循环 for in遍历对象;
数组的方法:
1.push() 可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度
2.pop() 从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。
3.unshift()能够在数组前面添加任意个项并返回新数组的长度。
4.shift() 能够移除数组中的第一个项并返回该项,同时将数组长度减 1。
5.reverse() 方法会反转数组项的顺序。
6.sort() 方法按字母表升序排列数组项。如果利用sort排序数字,需要添加一个比较函数作为参数。
7.concat() 方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组。
8.slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数(索引位置)。
9.splice() 方法,对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,改变原数组。
es5新增方法:
indexOf/lastIndexOf
返回要查找的项在数组中的索引位置,没找到的情况下返回-1。
两个参数:参1要查找的数组项,参2(可选的)查找的起点位置的索引参1:起始索引位置参2:删除的长度 参数3开始:需要添加的数组项。
数组去重
编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组
如果待去重的数组项不存在新数组(-1),添加到新数组

for (var i = 0, len = arr.length; i < len; i++) {
			    if (newarr.indexOf(arr[i]) === -1) {//满足条件,不存在新数组中
			         newarr.push(arr[i]);
			     }
			 }
		迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”。
		每一个方法有两个参数:参1是一个函数(回调函数) 参2(可选的) this指向
		参1是一个函数(回调函数),这个回调函数又有三个参数(数组项的值,数组项的索引位置,数组本身)
		 every():对数组中的每一项运行给定的函数,如果该函数对数组的每一项都返回true,整个方法的结果就是true
		 some():对数组中的每一项运行给定的函数,如果该函数对数组的任意一项返回true,结果就返回true.
		判断一个数组中是否存在某个值。
		 filter():对数组中的每一项运行给定的函数,返回该函数结果为true项组成的数组。(过滤)
		数组去重
var arr = [1, 1, 34, 56, 34, 56, 123, 1, 34];
			 var newarr = [];
			 newarr=arr.filter(function(v,i,a){
			 	return arr.indexOf(v)===i;
			 });
			 console.log(newarr)
		归并方法 
		方法包含两个参数:参1每一项执行的函数,参2 迭代的初始值(可选的)
		每一项执行的函数里面包含四个参数(前一个值,当前值,数组项的索引,数组本身)
		这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。每一次迭代得到的结果会作为下一次迭代的初始值。
		reduce() : 从数组的第一项开始,逐个遍历到最后。
		reduceRight() :从数组的最后一项开始,逐个遍历到第一项。

		二维数组:数组项中还有数组。  
	    关于二维数组的练习:
	 通过循环按执行顺序,做一个5×5的二维数组,赋1到25的自然数,然后输出该数组的左下半三角。试编程。
let arr = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[],[]];
    function double(n) {//如果n<10,前面添加0
        return n < 10 ? '0' + n : n;
    }
   let arr = [];
   let num = 1;
     for (let i = 0; i < 5; i++) {//给空数组进行赋值
        arr[i] = [];//告知arr数组的每一项还是数组,arr是二维数组 arr=[[],[],[],[],[]]
        for (let j = 0; j < 5; j++) {
            arr[i][j] = double(num++);//++ 先赋值,后num自加
            //控制二维数组输出值,通过索引完成的。因为是二维数组,对应两个索引。
           //对比前后索引,输出需要的结构
             if (i >= j) {
                 document.write(arr[i][j] + '&nbsp;&nbsp;&nbsp;&nbsp;');
            }
        }
       document.write('<br>');
    }
    console.log(arr);
        对象数组 :数组中是对象
  let arrobj = [{ a: 1, b: 2 }, { c: 3, d: 4 }, { name: 'zhangsan', age: 100 }];
冒泡排序
			let times=0;
			for(let i=0;i<arr.length-1;i++){
				for(let j=0;j<arr.length-i-1;j++){
					if(arr[j]>arr[j+1]){
						let temp=arr[j];
						arr[j]=arr[j+1];
						arr[j+1]=temp;
					}
					times++;
				}
			}
选择排序
			for(let i=0;i<arr.length;i++){
				let minindex=i;
				let minvalue=arr[minindex];
				for(let j=i+1;j<arr.length;j++){
					if(arr[j]<minvalue){
						minvalue=arr[j];
						minindex=j;
					}
				}
				if(i!==minindex){
					let temp=arr[i];
					arr[i]=arr[minindex];
					arr[minindex]=temp;
				}
			}

严格模式:
严格模式的目的:消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
开启严格模式,直接在代码最开始的位置写上字符串 ‘use strict’(script标签第一行,js文件代码的第一行,函数内部的第一行)
1.变量显式声明 2.禁止使用with语句 3.普通的函数调用,禁止this关键字指向全局对象 4.不允许重名的参数 5.禁止使用八进制 6.不能对arguments进行赋值,不能使用arguments.callee等属性或者方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值