js array methods and array sorting | deduplication

There are two ways to create an array in JavaScript

(1) Use the Array constructor:

var arr1 = new Array(); //创建一个空数组
var arr2 = new Array(20); // 创建一个包含20项的数组
var arr3 = new Array("jack","lucy","Tom"); // 创建一个包含3个字符串的数组

(2) Use array literal notation:

var arr4 = []; //创建一个空数组
var arr5 = [20]; // 创建一个包含1项的数组
var arr6 = ["lily","lucy","Tom"]; // 创建一个包含3个字符串的数组

Array methods include array prototype methods and methods inherited from object objects. Here we only introduce the array prototype methods. The array prototype methods mainly include the following:

join()  	//
push()  	//可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。 
pop()		//数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。
shift() 	//删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。 
unshift() 	//将参数添加到原数组开头,并返回数组的长度 。
sort()		//按升序排列数组项——即最小的值位于最前面,最大的值排在最后面。
reverse()	//反转数组项的顺序。
concat()	//将参数添加到原数组中。这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。在没有给 concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
slice()		//返回从原数组中指定开始下标到结束下标之间的项组成的新数组。slice()方法可以接受一或两个参数,即要返回项的起始和结束位置。在只有一个参数的情况下, slice()方法返回从该参数指定位置开始到当前数组末尾的所有项。如果有两个参数,该方法返回起始和结束位置之间的项——但不包括结束位置的项。
splice()	//很强大的数组方法,它有很多种用法,可以实现删除、插入和替换。
indexOf()	//接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。 
lastIndexOf()ES5新增)//接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
forEach()ES5新增)//对数组进行遍历循环,对数组中的每一项运行给定函数。这个方法没有返回值。参数都是function类型,默认有传参,参数分别为:遍历的数组内容;第对应的数组索引,数组本身。
map()ES5新增)//指“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
filter()ES5新增)//“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组。
every()ES5新增)//判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true。
some()ES5新增)//判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回true。
reduce()	//reduce()方法从数组的第一项开始,逐个遍历到最后。
reduceRight()ES5新增)//而 reduceRight()则从数组的最后一项开始,向前遍历到第一项。

Array deduplication method

//ES6中的new Set方法
 var arr = [1,1,1,2,34,5,6,5,6,2,1]
    console.log(arr) //去重前
    arr = [...new Set(arr)]
    console.log(arr) //去重后
 		 // 1. 完成一个简单的数组去重
		 // 2. 封装成一个函数,完成数组去重
		 // 3. 返回去重后的结果
		 // 数组for循环
		 // indexOf()  如果找不到返回-1
		 // push() 数组中追加元素
		 // 函数的封装,传参,以及返回结果
		
		//2.完成函数的封装
		function quchong(arr1) {
    
    
			//定义一个空数组用来存储去重后的结果
			var arr = [];
			//遍历数组中的所有元素
			for(var i = 0; i < arr1.length; i++) {
    
    
				//判断arr数组中是否有当前遍历的元素出现
				//如果 arr里面没有当前遍历的元素的话
				if(arr.indexOf(arr1[i]) == -1) {
    
    
					arr.push(arr1[i]); //空数组中添加元素
				}
			}
			//console.log(arr);
			return arr;
		}
		//定义要去重的数组
		var arr1 = [1, 2, 3, 'a', 'f', 2, 'b', 'c', 'a', 'f', 4];
		//完成函数封装后进行函数的调用
		var Arr1 = quchong(arr1);
		console.log(Arr1);
		var arr2 = [1,3,5,7,2,3,7,9];
		quchong(arr2);

Sorting of the array

**方法一**
//降序
var arr =[1,1,1,2,3,4,653,233,11]
 arr.sort((a, b) => {
    
    
    return a - b
  })
  console.log(arr)
//升序
arr.sort((a, b) => {
    
    
    return b - a
  })
  console.log(arr)
**方法二**
   //冒泡排序的方法
			var  arr = [12,2,4,3,18,5];
			//外层循环,循环遍历所有的值
			for(var i=0;i<arr.length; i++){
    
    
				//内层循环,从当前元素下一个元素开始循环比较,取决于当前i循环到的值
				for(var j = i+1; j<arr.length; j++){
    
    
					//i下标对应的值和j下标对应的值进行比较
					if(arr[i] > arr[j]){
    
    
						//数组前面的元素大于后面的元素,交换位置
						var tmp = arr[i];
						arr[i] = arr[j];
						arr[j] = tmp;
					}
				}
			}
            	console.log(arr);//打印数组的值	
**方法三**
 //sort() 方法
 		var  arr = [12,2,4,3,18,5];
			//自定义的排序方法
		function px(a,b){
    
    
			return a-b;	//降
			//return b-a; 升
		}
		var arr = arr.sort(px); 			
		console.log(arr);

Guess you like

Origin blog.csdn.net/weixin_46300135/article/details/110181078