数组之最全汇总(包含es6)

定义数组:

var arr = [];
//或者
var arr = new Array(); 

//ES6
const arr = [];
const arr = new Array();

检测数组:


	// 1.instanceof 检测
	console.log(arr instanceof Array);//true  arr对象的原型链上能找到Array
	// 注意:此处不能用 typeof typeof返回的是数据类型的字符串表达 不能判断null 和 数组 typeof         
           arr 返回的是object

	// 2.constructor 检测
	console.log(arr.constructor === Array);//true
	//constructor可以被重写 例如:
	var str = new String();
	str.constructor = Array;
	console.log(str.constructor === Array);// true

  	// 3.Object.prototype.toString.call() 检测
        // 此方法可以确保检测数组
  	console.log(Object.prototype.toString.call(arr));//[object Array]

  	// 4.ES6 isArray()
	console.log(Array.isArray([]));//true

操作数组:

1.indexOf()

 Array可以使用indexOf()来返回指定元素的索引,若没有找到返回-1;

        var arr = [1,2,3,4];
	console.log(arr.indexOf(1));// 0
	console.log(arr.indexOf(5));// -1

2.slice(star,end)

slice()截取数组部分元素然后返回一个新数组;

        var arr = ['a','s','d','f','g'];
	console.log(arr.slice(0,3));//['a','s','d'] 从索引为0开始,到索引3结束,但不包括索引3
	console.log(arr.slice(3));//['f','g'] 从索引3开始到结束

 3.push() 
   push() 向数组的末尾添加若干元素 返回新的长度 返回值为Number;

        var arr = [1,2,3,4,5];
	console.log(arr.push(6,7,8));// 8

 4.pop() 

pop()把数组最后一个元素删掉,返回删除的元素;

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

5.unshift()

unshift()往数组的头部添加若干元素 返回新的长度

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

6.shift()
   shift() 把数组的第一个元素删掉 返回第一个元素

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

 7.sort()   

sort()用于数组元素进行排序,默认按字母升序排序 返回一个排序后的新数组

        var arr = ['a','s','d','f'];
	console.log(arr.sort());// ['a','d','f','s']
	var arr = [1,4,2,5];
	console.log(arr.sort());// [1,2,4,5]
	// sort(function(a,b){return a-b}) 正序
	// sort(function(a,b){return b-a}) 倒序

8.reverse() 
    reverse()用于颠倒数组中元素的顺序

        8.reverse() 
	// reverse()用于颠倒数组中元素的顺序

9.concat() 

concat()用于连接两个或多个数组 返回一个新的数组;

        var arr = [1,2,3,4];
	var arr2 = ['a','s'];
	console.log(arr.concat(arr2));// [1,2,3,4,'a','s']

 10.join()
    join() 把数组中的所有元素转换为字符串 返回字符串

        var arr = ['a','s','d','f'];
	console.log(arr.join());// a,s,d,f
	console.log(arr.join('-'));// a-s-d-f

11.splice()
    splice()用于插入,删除,替换数组元素 返回删除元素的数组 若没有删除 返回[]
    语法 array.splice(index,howmany,item1......itemX);
    index 从何处开始添加\删除 howmany应该删除几个元素  item 添加到数组的新元素

        var arr = [1,2,3,4];
	console.log(arr.splice(1,2));//从索引1开始 删除两个元素2和3 返回删除的元素 [2,3]
	console.log(arr.splice(2,0,'a','s'));// 从索引2开始 删除0个 添加a和s 返回[] 

ES6的一些方法:

12.every() 返回布尔值
 every() 检测数组所有元素是否符合指定条件,若有一个不满足 返回false 且不继续不会继续检测 若满足 返回true
 语法:array.every(function(currentValue,index,arr), thisValue)

        const arrr = [1,3,5,7];
	console.log(arrr.every((item,index,array) => item > 0));//true
	console.log(arrr.every((item,index,array) => item > 5));// false

13.filter() 返回新的数组
   filter()过滤操作 筛选符合条件的元素 若为true 返回组成新的数组
   语法:array.filter(function(currentValue,index,arr), thisValue)

        const arr3 = [1,2,3,4,5];
	console.log(arr3.filter(item => item%2===0));// [2,4]
	console.log(arr3.filter(item => item%2));// [1,3,5] 

14.find()
    find() 返回第一个符合条件的元素 若没有符合条件的返回undefined
    语法:array.find(function(currentValue, index, arr),thisValue)

        const arr4 = [1,2,3,4,5];
	console.log(arr4.find(item => item>2));// 3

 15.findIndex()
     findIndex() 返回第一个符合条件的元素的索引 若没有返回-1
     语法:array.find(function(currentValue, index, arr),thisValue)

        const arr5 = [1,2,3,4,5]; 
	console.log(arr5.findIndex(item => item>2));// 2

16.includes()
  includes() 判断一个数组是否包含指定的元素 若包含返回true 否则返回false
   语法:arr.includes(searchElement, fromIndex) searchElement 要查找的元素 formIndex 开始查找的索引值

        const arr6 = [1,2,3,4,5];
	console.log(arr6.includes(2));// true;
	console.log(arr6.includes(2,2));// false

17.map()
  map() 映射操作,对原数组每个元素进行处理,并返回新的数组
  语法:array.map(function(currentValue,index,arr), thisValue)

        const arr7 = [{name:'a',age:12},{name:'s',age:18}];
	console.log(arr7.map(item => item.name + 'c'));//['ac','sc']

18.reduce()
    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
    注意: reduce() 对于空数组是不会执行回调函数的
    语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

        const arr8 = [1,2,3,4,5]
	console.log(arr8.reduce((total,currentVal) => total + currentVal));// 15

19.some()
  some() 检测数组中的元素是否满足指定条件 若有一个满足 即返回true 并且不再继续执行检测 若没有满足的返回false 
   与every不同的是,这里只要某一个元素通过测试,即返回true

        const arr9 = [1,2,3,4,5];
	console.log(arr9.some(item => item > 4));//true 若有一个满足 返回true
	console.log(arr9.some(item => item === 0));//false
	console.log(arr9.every(item => item < 2));//false 若有一个不满足返回false

 20.forEach()
  forEach()遍历 循环 forEach会遍历数组, 没有返回值, 不允许在循环体内写return, 不会改变原来数组的内容.

  语法:array.forEach(function(currentValue, index, arr), thisValue)

 [1,2,3,4].forEach(console.log)

forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。

欢迎补充 指正!

猜你喜欢

转载自blog.csdn.net/Hanhanyoona/article/details/82107985