JS中数组的相关方法

101 阅读3分钟

1.数组元素的插入和删除

push方法

 在数组尾部插入元素,可插入多个元素,返回数组的长度,会改变原始数组

unshirt方法

 在数组头部插入元素,可插入多个元素,会改变原始数组

pop方法

删除数组的最后一个元素,返回删除的元素。不可有参数,会改变原始数组

shirt方法

删除第一个元素,返回删除的元素,会改变原始数组

2.数组元素的截取

splice(开始截取的索引值,截取的长度,截取相应元素之后要添加的元素1,截取相应元素之后要添加的元素2...)

该方法可以进行数组元素的删除、插入、替换,返回值为从原始数组中删除的项(如果没有删除任何项,则返回一个空数组),会改变原始数组。

slice(start,end),参数可以为负数,-1代表最后一位

截取返回包含start,但不包含end索引值对应的元素,如果不传end,则截取到最后一位;当startend都不传,截取所有,不会改变原始数组。

3.改变数组元素顺序

reverse方法

将数组逆序返回,会改变原始数组

sort方法

会改变原始数组。默认情况下会将元素按照字符串ascii码进行比较,第一位相同时比较后一位;还可传入一个函数进行排序,比较函数两个参数ab,返回a-b 升序,返回b-a 降序。会改变原数组

4.数组转字符串

join方法

将数组中的每个元素转为字符串,并用方法中的形参作为连接符分割,默认用英语逗号,不会改变原数组

toString方法

用于返回一个由该数组所有元素以“,”拼接成的字符串,不会改变原数组

toLocaleString方法

用于返回格式化后的字符串,该字符串格式因语言不同返回值也会不同,可以通过传参决定返回的语言及具体表现,不会改变原数组

5.数组合并

concat方法---arr1.concat(arr2)

将两个数组合并到一起返回,不会改变原数组,属于浅拷贝

6.查找数组元素

indexOf方法

array中查找等于item的值,返回找到的第一个元素的索引
    // array.indexOf(item,start) 
    //item 必须 要查找的元素的位置,
    //start 非必须可选的整数参数。规定在数组中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
	let food= ["番茄", "胡萝卜", "排骨", "苹果"];
	let a = food.indexOf("苹果");
	console.log(a) // 3
	let b= food.indexOf("香蕉");
	console.log(b) // -1

lastIndexOf方法

lastIndexOf(val, start) start为从第几个索引开始找,默认值为最后一个,反向查找,返回第一个元素的索引值, 找不到返回-1

7.其他方法

Array.isArray()

用来判断一个值是否为数组

ES6新增方法

copyWithin方法

用于浅复制数组的一部分到另一位置,会改变原数组
copyWithin(target,start,end),其中tartget为复制到的索引值,start为开始复制的索引,end为结束复制的索引但不包括end位置的元素

fill方法

根据下标范围来给范围内的元素覆盖新的值,左闭右开,会改变原数组
`const arr = [1, 2, 3, 4, 5]; 
const newArr = arr.fill('a', 2, 4); 
console.log(newArr);// [1, 2, 'a', 'a', 5]`

Array.from()

将一个类数组对象或者可遍历对象转换成一个真正的数组 
`let arrayLike = {
        0:'你',
        1:'我',
        2:'他',
        3:['闻官军','收','河南','河北'],
        4:{'name':'国之不国','solgen':'家之何存'},
        'length':5
}
 console.log(Array.from(arrayLike));` 

ES7新增

includes(val)方法看数组中是否存在某个值,返回boolean
`let arr = [10, 20, 30, 40, 50, 60, 70]; 
console.log( arr.includes(50) );`