操作数组的方法

ES6 Array.of()返回所有参数数值组成的数组

let a = Array.of(1, 2, 3);//[1, 2, 3]
let a = Array.of(3); //[3]
let a = Array(3); [undefined, undefined, undefined]

ES6 Array.from()将两类对象转为真正的数组

第一个参数(必须):要转换为真正数组的对象

第二个参数(可选):对每个元素进行处理,将处理后的值放入返回的数组

第三个参数(可选):用来绑定this

//对象拥有length属性
let obj = {0: 'a', 1: 'b', 2: 'c', length: 3}
let arr = Array.from(obj); //['a', 'b', 'c']
let arr = Array.from('hello'); ['h', 'l', 'l', 'o']

改变原数组的方法

let a = [1, 2, 3];

//pop()删除数组最后一个元素,返回该元素
let item = a.pop() //item:3 a:[1, 2]

//shift()删除数组的第一个元素,返回该元素
let item = a.shift()// item:1 a:[2, 3]

//push()向数组最后一位添加元素, 返回新数组长度
let item = a.push(4) //item:4 a:[1, 2, 3, 4]

//unshift()向数组开头添加一个元素, 返回新数组的长度
let item = a.unshift(5)//item:4 a:[5, 3, 2, 1]

//reverse()用于颠倒数组元素的顺序
let item = a.reverse()//item:[3,2,1]    

splice()添加/删除数组元素,返回被删除的元素的新数组

语法: arr.splice(index, howmany, item1, ...)

index: 必须。整数,规定添加删除的位置,使用负数可以从数组结尾处规定位置。

howmany: 必须。要删除的项目数量。为0则不删除。

item,... :可选。向数组添加新的项目。

1.删除元素

let a = [1, 2, 3, 4, 5, 6, 7];
let itme1 = a.splice(0, 3);//返回被删除项目的数组[1, 2, 3] a变为[4, 5, 6, 7]
let item2 = a.splice(-1, 3)// 从6开始后面只有1个元素所以只能删除7,返回7

2.删除并添加 往后加参数即可,先删除后添加

let a = [1, 2, 3, 4, 5, 6, 7];
let item = a.splice(-2, 3, '1', '2')//[6, 7] a:[1,2,3,4,5,'1','2']

sort()对数组元素进行排序,返回该数组

var array = [10, 1, 3, 4,20,4,25,8];
array.sort(function(a, b) {return a- b})//[1,3,4,4,8,10,20,25];

array.sort(function() {return Math.random() > 0.5 ? 1 : -1})//随机排序

不改变原数组的方法

ES5:join、toLocateString、toStrigin、slice、cancat、indexOf、lastIndexOf

ES7: includes

join()数组转字符串 把数组中的所有元素通过制定的分隔符进行分割放入一个字符串,返回生成的字符串

let a = ['hello', 'world'];
let str = a.join();//'hello,world'
let str1 = a.join('+');//'hello+world'
let a= [['OBKoro1','23'],'test'];
let str1=a.join(); // OBKoro1,23,test
let b= [{name:'OBKoro1',age:'23'},'test'];
let str2 = b.join(); // [object Object],test
// 对象转字符串推荐JSON.stringify(obj);

所以,join()/toString()方法在数组元素是数组的时候,会将里面的数组也调用join()/toString(),如果是对象的话,对象会被转为[object Object]字符串。

slice() 浅拷贝数组的元素 返回回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,且原数组不会被修改。

let a= ['hello','world'];
let b=a.slice(0,1); // ['hello']
a[0]='改变原数组';
console.log(a,b); // ['改变原数组','world'] ['hello']
b[0]='改变拷贝的数组';
 console.log(a,b); // ['改变原数组','world'] ['改变拷贝的数组']
concat 用于合并连个或多个数组,返回一个新数组
indexOf() 查找数组是否存在某个元素,返回下标 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
lastIndexOf() 查找指定元素在数组中的最后一个位置

猜你喜欢

转载自www.cnblogs.com/ts1996/p/10305335.html