-
push()
-
该方法可以向数组的末尾添加一个或多个元素, 并返回数组新的长度
var arr = ["孙悟空", "猪八戒", "沙和尚"]; var result = arr.push("唐僧", "白骨精"); console.log(arr); // "孙悟空", "猪八戒", "沙和尚","唐僧", "白骨精" console.log(result); //5
-
-
pop()
-
该方法可以删除数组的最后一个元素, 并将被删除的元素作为返回值返回
var arr = ["孙悟空", "猪八戒", "沙和尚"]; var result = arr.pop(); console.log(arr); // "孙悟空", "猪八戒" console.log(result); // "沙和尚"
-
-
unshift()
-
向数组开头添加一个或多个元素, 并返回新的数组长度
var arr = ["孙悟空", "猪八戒", "沙和尚"]; var result = arr.unshift("唐僧", "白骨精"); console.log(arr); // "唐僧", "白骨精", "孙悟空", "猪八戒", "沙和尚" console.log(result); //5
-
-
shift()
-
删除数组的第一个元素, 并将被删除的元素作为返回值返回
var arr = ["孙悟空", "猪八戒", "沙和尚"]; var result = arr.shift(); console.log(arr); // "猪八戒", "沙和尚" console.log(result); // "孙悟空"
-
-
forEach()
可以用来遍历数组 (只支持IE8以上的浏览器)
-
forEach()方法需要有个函数作为参数
- 这种由我们创建但不是由我们调用的, 称为回调函数
- 数组中有几个元素就会执行几次, 每次执行时, 浏览器会将遍历到的元素以实参的形式传递进来, 我们可以来定义形参, 来读取这些内容
- 浏览器会在回调函数中传递三个参数
- 第一个参数就是当前正在遍历的元素("唐僧"或者"白骨精"或者其他)
- 第二个参数就是当前正在遍历的元素的索引
- 第三个参数是正在遍历的数组
var arr = ["唐僧", "白骨精", "孙悟空", "猪八戒", "沙和尚"]; arr.forEach(function(value, index, obj){ console.log(value); })
-
slice()
可以用来从数组中提取出指定元素
该方法不会改变原数组, 而是将截取到的元素封装到一个新数组中返回
-
需要两个参数
- 截取开始位置的索引, 包含开始索引
- 结束位置的索引, 不包含结束索引 (第二个参数可以省略, 此时会截取从开始索引往后的所有元素)
- 索引可以传递一个负值, 如果传递的是负值, 则从后往前计算, -1即从后数第一个.
var arr = ["唐僧", "白骨精", "孙悟空", "猪八戒", "沙和尚"]; var result = arr.slice(0, 2); var result1 = arr.slice(1); console.log(result); //"唐僧", "白骨精" console.log(result1); //"白骨精", "孙悟空", "猪八戒", "沙和尚"
-
splice()
可以用于 删除数组中的指定元素\替换元素\指定位置插入元素
使用splice()会影响到原数组, 会将指定元素从原数组中删除, 并将被删除的元素作为返回值返回
-
参数: 第一个:表示开始位置的索引; 第二个: 表示删除的数量; 第三个及以后: 可以传递一些新的元素, 这些元素会自动插入到开始位置索引前面
var arr = ["唐僧", "白骨精", "孙悟空", "猪八戒", "沙和尚"]; var result = arr.splice(0, 2, "牛魔王"); console.log(arr);// "牛魔王", "孙悟空", "猪八戒", "沙和尚" console.log(result);// "唐僧", "白骨精"
-
练习: 数组去重
var arr = [1,2,3,2,2,1,3,4,5,2]; // 获取数组中每一个元素 for(var i=0; i<arr.length; i++){ // 获取当前元素后的所有元素 for(var j=i+1; j<arr.length; j++){ // 判断两元素是否相等 if(arr[i] == arr[j]){ // 如果重复删除j对应的元素 arr.splice(j, 1); //因为被删除元素的后一个元素会自动顶上来, 因此要再对比一次是否相等 j--; } } } console.log(arr);
-
concat()
可以连接两个或多个数组, 并将新的数组返回
-
该方法不会对原数组产生影响
var arr = ["唐僧", "白骨精", "孙悟空"]; var arr1 = ["玉兔精", "猪八戒", "沙和尚"]; var result = arr.concat(arr1); console.log(result); // "唐僧", "白骨精", "孙悟空", "玉兔精", "猪八戒", "沙和尚"
-
join()
该方法可以将一个数组转换成字符串
该方法不会对原数组产生影响, 而是将转换后的字符串作为结果返回
-
在join中可以指定一个字符串作为参数, 这个字符串将会成为数组元素的连接符, 如果不指定, 则默认使用逗号(,)作为连接符
var arr = ["唐僧", "白骨精", "孙悟空"]; var result = arr.join("-"); console.log(typeof result); // String console.log(result); // "唐僧"-"白骨精"-"孙悟空"
-
reverse()
- 该方法用来反转数组, 该方法会直接修改原数组
-
sort()
该方法可以用来对数组的元素进行排序, 该方法也会直接修改原数组
-
默认按照Unicode编码进行排序, 同时也可指定排序规则
- 可以在sort()中添加一个回调函数, 来指定排序规则
- 回调函数中需要两个形参, 浏览器会分别使用数组中的元素作为实参去调用回调函数, 使用哪两个元素调用不确定, 但肯定的是在数组中a一定在b前面
- 浏览器会根据回调函数的返回值来决定元素的顺序
- >0 交换位置
- <=0 不交换位置
var arr = [5,4,6,3,2,8,1,7]; arr.sort(function(a, b){ //降序排列 /* if(a>b){return -1} else if(a<b){return 1} else{return 0} */ //升序排列 return a-b; //降序排列 //return b-a }) console.log(arr); //"1,2,3,4,5,6,7,8"
JS知识点--数组相关方法
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 线程机制和事件机制 应用程序必须运行在某个进程的某个线程上 一个进程中至少有一个运行的线程: 主线程, 进程启动...
- 面试常考点TAB切换案例(重点面试案例的复习): 以上方法仅限一个TAB栏的使用。而多个TAB栏时就需要封装如下:...