JavaScript中数组方法

push、pop、shift、unshift(改变原数组)

push() 添加元素到数组末端并返回数组的新长度
pop() 删除数组的最后一项并返回被删除的元素
unshift() 添加元素到数组的首端并返回数组的新长度
shift() 删除数组的第一项并返回被删除的元素
注: 给数组添加元素时可以传递多个元素

var arr = [1, 2, 3, 4, 5];
arr.push("测试元素");	// => [1, 2, 3, 4, 5, "测试元素"],返回数组长度为 6
arr.pop();	// => [1, 2, 3, 4, 5],返回被删除的元素 "测试元素"
arr.unshift("测试元素");	// => ["测试元素", 1, 2, 3, 4, 5],返回数组长度为 6
arr.shift();	// => [1, 2, 3, 4, 5],返回被删除的元素 "测试元素"
arr.push("测试元素", "测试元素", "测试元素");
//	=> [1, 2, 3, 4, 5, "测试元素", "测试元素", "测试元素"]

reverse、sort(改变原数组)

reverse() 颠倒数组内元素,返回新数组,改变原数组
sort() 对数组进行排序。默认排序顺序是将元素转换为字符串,然后比较它们的UTF-16码。
将函数作为参数时,该函数需要两个参数A,B,当函数的返回值为 -1 时;排序为A,B,当函数的返回值为 0 时,排序为A,B;当函数的返回值为 1 时,排序为B,A

var arr = [5, 8, 23, 57, 32, 5, 6, 7];
arr.reverse();	// => [7, 6, 5, 32, 57, 23, 8, 5]
arr.sort();	// => [23, 32, 5, 5, 57, 6, 7, 8]
arr.sort((a, b) => a - b);	// => [5, 5, 6, 7, 8, 23, 32, 57]

splice(改变原数组)、slice(不改变原数组)

splice() 通过索引添加或删除任意个元素,返回新数组,改变原数组
slice() 截取当前数组中的一部分,返回新数组,不改变原数组

var arr = [1, 2, 3, 4, 5];
// splice(数组的索引值,删除*个元素, 在该索引位添加的元素)
// 返回值为被删除的元素组成的新数组
// 当删除的元素为0时,则为添加元素
arr.splice(2, 1, "测试元素");	// => [1, 2, "测试元素", 4, 5]	返回值为 [3]
// slice(开始的索引位,结束的索引位)
arr.slice(1, 4);	// => [1, 2, "测试元素", 4, 5]	返回值为[2, "测试元素", 4]

join、toString、concat(不改变原数组)

join() 将数组拼接成字符串,按所传参数(字符串)拼接
toString() 将数组转化为字符串
concat() 将两个数组拼接成一个数组,并返回新数组

var arr = [1, 2, 3, 4, 5];
arr.join();	// => "1,2,3,4,5"
arr.join("");	//=> "12345"
arr.join("-");	// => "1-2-3-4-5"
arr.toString();	// => "1,2,3,4,5"
arr.concat("测试元素", "测试元素");	// => [5, 4, 3, 2, 1, "测试元素", "测试元素"]
var arr1 = [3, 3, 3];
arr.concat(arr1);	// => [5, 4, 3, 2, 1, 3, 3, 3]

indexOf、lastIndexOf、find、findIndex、includes(不改变原数组)

indexOf() 返回数组中第一个与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1
lastIndexOf() 返回数组中最后一个(从右边数第一个)与指定值相等的元素的索引,如果找不到这样的元素,则返回 -1
find() 找到第一个满足测试函数的元素并返回那个元素的值,如果找不到,则返回 undefined
findIndex() 找到第一个满足测试函数的元素并返回那个元素的索引,如果找不到,则返回 -1
includes() 判断当前数组是否包含指定值,返回true、false

var arr = [1, 2, 4, 3, 2, 3];
arr.indexOf(3);	// => 3
arr.lastIndexOf(2);	// => 4
arr.find(num => num > 3);	// => 4
arr.findIndex(num => num > 3);	// => 2
arr.includes(3);	// => true

filter、map(不改变原数组)

filter() 过滤数组,将过滤函数中返回 true 的数组元素放入新数组,并返回
map() 将原数组中每个元素都调用一次回调函数,回调函数的返回值组成一个新数组,并返回

var arr = [1, 2, 3, 4, 5];
arr.filter(num => num > 3);	// => [4, 5]
arr.map(num => num * 2);	// => [2, 4, 6, 8, 10]

from、isArray(实例方法)

from() 将一个类数组或可迭代对象转换为数组
isArray() 判断传递的参数是否为一个数组

Array.from("foo");	// => ["f", "o", "o"]
Array.isArray([1, 2, 3]);	// => true
Array.isArray("dsfzgadhdf");	// => false

reduce

为数组中每一个元素依次调用回调函数
基本使用:arr.reduce(function(prev, cur, index, arr) {}, init)
reduce 方法需要两个参数,第一个参数为一个回调函数,该函数有四个参数,第二个参数为初始值

prev 上一次调用回调的返回值
cur 当前正在处理的元素
index 当前元素在数组中的索引
arr 调用 reduce 方法的数组

注意:如果没有提供 init 参数,reduce 会从索引值为 1 的地方开始执行回调 方法,跳过第一个索引。如果提供 init 参数,从索引 0 开始。
例:对数组进行求和

const arr = [1, 2, 3, 4];
arr.reduce(function(prev, cur, index, arr) {
	return prev + cur;
}, 0)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值