slice()
从数组中提取指定的一个或者多个元素,返回结果为新的数组(不会改变原来的数组)
备注:该方法不会改变原数组,而是将截取到的元素封装到一个新数组中返回。
语法:
新数组 = 原数组.slice(开始位置的索引, 结束位置的索引); //注意:包含开始索引,不包含结束索引
splice()
从数组中删除指定的一个或多个元素,返回结果为新的数组(会改变原来的数组,会将指定元素从原数组中删除)
语法:
新数组 = 原数组.splice(起始索引index, 需要删除的个数, 第三个参数, 第四个参数...);
上方语法中,第三个及之后的参数,表示:向原数组中添加新的元素,这些元素将会自动插入到开始位置索引的前面
concat()
连接两个或多个数组,返回结果为新的数组(不会改变原数组)
语法:
新数组 = 数组1.concat(数组2, 数组3 ...);
join()
将数组转换为字符串,返回结果为转换后的字符串(不会改变原来的数组)
补充:join()方法
可以指定一个字符串
作为参数,这个字符串将会成为数组中元素的连接符
;如果不指定连接符,则默认使用 , 作为连接符,此时和 toString()的效果是一致的。
语法:
新的字符串 = 原数组.join(参数); // 参数选填
reverse()
反转数组,返回结果为反转后的数组(会改变原来的数组)
语法:
反转后的数组 = 数组.reverse();
sort()方法
sort()
:对数组的元素进行从小到大来排序(会改变原来的数组)。
-
无参时
如果在使用sort() 方法
时不带参,则默认按照Unicode编码,从小到大进行排序。
-
带参时
如果在sort()方法
中带参,我们就可以自定义排序规则。具体做法如下:
我们可以在sort()
添加一个回调函数,来指定排序规则。回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。
浏览器根据回调函数的返回值来决定元素的排序:
1、如果返回一个大于0
的值,则元素会交换位置
2、 如果返回一个小于0
的值,则元素位置不变
3、 如果返回一个0
,则认为两个元素相等,则不交换位置
(冒泡排序)
var arr3 = [5, 2, 11, 3, 4, 1];
// 自定义排序规则
var result = arr3.sort(function(a, b) {
return a - b; // 升序排列
// return b - a; // 降序排列
});
console.log("arr3 =" + JSON.stringify(arr3));
console.log("result =" + JSON.stringify(result));
indexOf() 和 lastIndexOf():获取数据的索引
语法:
索引值 = 数组.indexOf(value);
索引值 = 数组.lastIndexOf(value);
解释:
-
indexOf(value)
:从前往后索引,获取value
在数组中的第一个下标。 -
lastIndexOf(value)
:从后往前索引,获取value
在数组中的最后一个下标。
作用:
利用这个方法,我们可以判断某个值是否在指定的数组中。如果没找到则返回-1
。
find()
语法:
find(function(item, index, arr){return true})
作用:找出第一个满足「指定条件返回true」的元素。
findIndex()
语法:
findIndex(function(item, index, arr){return true})
作用:找出第一个满足「指定条件返回true」的元素的index。
Array.from()
语法:
array = Array.from(arrayLike)
作用:将伪数组或可遍历对象转换为真数组。
伪数组与真数组的区别:
伪数组的原型链中没有 Array.prototype,而真数组的原型链中有 Array.prototype。因此伪数组没有 pop、join等属性。
Array.of()
语法:
Array.of(value1, value2, value3)
作用:将一系列值转换成数组。
isArray():判断是否为数组
布尔值 = Array.isArray(被检测的值) ;
以前,我们会通过 A instanceof B
来判断A
是否属于B
类型。但是在数组里,这种 instanceof
方法已经用的不多了,因为有下面isArray()
方法。
toString():转换数组
字符串 = 数组.toString();
解释:把数组转换成字符串,每一项用,
分割。
valueOf():返回数组本身
数组本身 = 数组.valueOf();
这个方法的意义不大。因为我们指直接写数组对象的名字,就已经是数组本身了。
清空数组
清空数组,有以下几种方式:
var array = [1,2,3,4,5,6];
array.splice(0); //方式1:删除数组中所有项目
array.length = 0; //方式2:length属性可以赋值,在其它语言中length是只读
array = []; //方式3:推荐
网友评论