js常用数组方法-笔记

js常用数组方法-笔记

咱们要多做笔记,才能印象深刻啊~~

数组内置方法
/
1.Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。会改变原数组。

var arr = [1,2,3,4,5,6];
arr.push(7,8,9);
console.log(arr); // [1,2,3,4,5,6,7,8,9]

/
2.Array.pop(),删除并返回数组的最后一个元素,若数组为空,则返回undefined。会改变原数组。

var arr = [1,2,3,4,5,6];
var del = arr.pop();
console.log(del); // 6
console.log(arr); // [1,2,3,4,5]

/
3.Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。会改变原数组。

var arr = [1,2,3,4,5,6];
var res = arr.unshift(7,8);
console.log(res); // 8
console.log(arr); // [7,8,1,2,3,4,5,6]

/
4.Array.shift(),删除数组的第一项,并返回第一个元素的值。若该数组为空,则返回undefined。会改变原数组。

var arr = [1,2,3,4,5,6];
var res = arr.shift();
console.log(res); // 1
console.log(arr); // [2,3,4,5,6]

/
5.Array.concat(arr1,arr2…),合并两个或多个数组,生成一个新的数组。原数组不变。

var arr = [1,2,3];
var arr1 = ["a","b","c"];
var arr2 = ["A","B","C"];
var res = arr.concat(arr1,arr2);
console.log(res); // [1,2,3,"a","b","c","A","B","C"]
console.log(arr); // [1,2,3]

/
6.Array.join(),将数组的每一项用指定字符连接形成一个字符串。默认连接字符为“,”逗号。原数组不变。

var arr = [1,2,3];
var str1 = arr.join();
var str2 = arr.join("-");
console.log(str1); // 1,2,3
console.log(str2); // 1-2-3

/
7.Array.reverse(),将数组倒序。会改变原数组。

var arr = [1,2,3,4,5,6,7,8,9];
arr.reverse();
console.log(arr); // [9,8,7,6,5,4,3,2,1]

/
8.Array.sort(),对数组按照字符串UniCode码排序或自定义的函数排序。会改变原数组。

从小到大排序

var arr = [9,6,5,1,2,7,3,4,8];
arr.sort((a,b) => a-b);
console.log(arr); // [1,2,3,4,5,6,7,8,9]

/
9.Array.includes() 判断一个数组是否包含一个指定的值。有则返回true,没有则返回false。

var arr = [1,2,3,4,5];
var bool = arr.includes(6);
console.log(bool); // false

/
10.Array.slice(start,end),从start开始,到end(不包括end),截取这些数组元素并返回到一个新数组。如果没有end,则截取start之后的所有数组元素。start和end可以给负值(加负号后就是倒着数的)。原数组不变。

var arr = [1,2,3,4,5];
var newArr = arr.slice(-4,-2);
console.log(newArr); // [1,2]

/
11.Array.splice(index(开始的位置的索引),delNum(删除元素的个数,为0则不删除),arr1,arr2…),对数组进行增删查改。arr1,arr2…为插入的元素。会改变原数组。

var arr = [1,2,3,4,5];
arr.splice(1,1,6,7,8);
console.log(arr); // [1,6,7,8,3,4,5]

/
数组常用方法

12.Array.filter(),通过自定义条件来过滤数组,会将满足条件的元素会返回到一个新的数组。

var arr = [1,2,3,4,5];
var newArr = arr.filter((v) => v>3);
console.log(arr); // [4,5]

/

13.Array.every(),通过自定义条件来判断,若所有数组元素都满足条件则返回true,否则返回false。

var arr = [1,2,3,4,5];
var bool = arr.every((v) => v>3);
console.log(bool); // false

/
14.Array.some(),通过自定义条件来判断,有一个数组元素满足条件则返回true,否则返回。

var arr = [1,2,3,4,5];
var bool = arr.some((v) => v>3);
console.log(bool); // true

/
15.Array.reduce(),通过回调函数来对数组中的每一个值(从第一个元素开始),开始计算,最后返回最终结果。

var arr = [1,2,3,4,5];
var total = arr.reduce((a,b) => a+b);
console.log(total); // 15

/
16.Array.indexOf() 搜索数组中的元素,并返回它所在的位置。返回的结果是元素的索引,没有的话则会返回-1。

var arr = [1,2,3,4,5];
var bool = arr.indexOf(3);
console.log(bool); // 2

/
17.Array.findIndex() 返回符合传入满足条件的数组元素的索引。只会返回第一个符合条件的元素的索引。

var arr = [1,2,3,4,5,3,4];
var index = arr.findIndex(3);
console.log(index); // 2

/

18.Array.find() 返回符合传入满足条件的数组元素。只会返回第一个符合条件的数组元素。

var arr = [1,2,3,4,5,3,4,5];
var value = arr.find(5);
console.log(value); // 5

/
19.Array.flat() 嵌套数组转一维数组,参数是数字,表示转换几维数组,参数为Infinity时,无论多少维数组都转为一维数组。

var arr = [1,2,[3,4],[5,6,[7,8]]];
var newArr1 = arr.flat(2);
var newArr2 = arr.flat(Infinity);
console.log(newArr1); // [1,2,3,4,5,6,[7,8]]
console.log(newArr2); // [1,2,3,4,5,6,7,8]

/
20.Array.map() 方法,遍历数组中的每一项并操作,同时返回一个新的数组。原数组不变。(类似forEach)。

var arr = [1,2,3,4,5];
var newArr = arr.map((v,i) => v*2);
console.log(newArr); // [2,4,6,8,10]

/
21.Array.forEach(),和for方法一样,遍历数组中的每一个元素,并将元素值和索引传进回调函数。原数组不变。

var arr = [1,2,3,4,5];
arr.forEach((v,i) => {
	console.log(v); // 1 2 3 4 5
});

ES6新增了两个方法

批量复制方法copyWithin(),以及填充数组方法fill()。
这两个方法的函数比较类似,都需要指定既有数组实例上的一个范围,包含开始索引,不包含结束索引,使用这个方法不会改变数组的大小。

1.Array.fill(),使用fill()方法可以向一个已有的数组中插入全部或部分相同的值。开始索引用于指定开始填充的位置,它是可选的。如果不提供结束索引,则一直填充到数组末尾。负值索引从数组末尾开始计算。

(1)用1填充整个数组

const arr = [0,0,0,0,0]
arr.fill(1);//[1,1,1,1,1]
arr.fill(0);//[0,0,0,0,0]//重置为0

(2)用2填充索引大于等于2的元素

arr.fill(2,2);//[0,0,2,2,2]
arr.fill(0);//[0,0,0,0,0]//重置为0

(3)使用3填充索引大于等于1且小于3的元素

arr.fill(2,1,3);//[0,3,3,0,0]

(4)用4填充索引大于等于1且小于4的元素

arr.fill(4,-4,-1);//[0,4,4,4,0]

注意:fill()会自动忽略超出数组边界、零长度及方向相反的索引范围。

2.Array.copyWithin(),copyWithin()会按照指定范围浅复制数组中的部分内容,然后将他们插入到指定索引开始的位置。

let arr =[0,1,2,3,4,5,6,7,8,9]

(1)从arr中复制索引5开始的内容,插入到索引0开始的位置

arr.copyWithin(0,5);//[5,6,7,8,9,5,6,7,8,9]

(2)从arr中复制索引0开始到索引3结束的内容,插入到索引4开始的地方

arr.copyWithin(4,0,3);//[0,1,2,3,0,1,2,7,8,9]
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值