常用的几个数组方法与数学方法

最近准备整理一下几个比较常用的去重、遍历函数,发现都在于数组打交道,顺带整理了一下常用的数组方法,可能不是很详尽,欢迎指正。

常用的几个数组方法

push()

作用:向数组的 末尾添加元素 (可一次添加多个)

说明: 会改变原数组 ,返回值为被添加元素后的新数组长度。

用法:a.push('10')

示例:

let a=[0,1,2,3];
a.push(4);        //返回5 (新数组的长度)

console.log(a);  //[0,1,2,3,4]

//添加多个
a.push(5,6);     //返回7

console.log(a);			// [0,1,2,3,4,5,6]
复制代码

unshift()

作用:向数组的 开头添加元素 (可一次添加多个)

说明: 会改变原数组 ,返回值为被添加元素后的新数组长度。

用法:a.unshift('10')

示例:

let a=[0,1,2,3];
a.unshift(4);        //返回5 (新数组的长度)

console.log(a);  //[4,0,1,2,3] 

//添加多个
a.unshift(5,6);     //返回7

console.log(a);			// [5,6,4,0,1,2,3] 
复制代码

pop()

作用:从数组的 末尾删除元素 (一次只能删除一个)

说明: 会改变原数组 ,返回值为被删除的那个元素。

用法:a.pop()

示例:

let a=[0,1,2,3];
a.pop();        //返回3 (被删除的元素)

console.log(a);  //[0,1,2] 
复制代码

shift()

作用:从数组的 开头删除元素 (一次只能删除一个)

说明: 会改变原数组 ,返回值为被删除的那个元素。

用法:a.shift()

示例:

let a=[0,1,2,3];
a.shift();        //返回0 (被删除的元素)

console.log(a);  //[1,2,3] 
复制代码

slice()

作用: 截取数组 ,将截取的部分形成新的数组

说明:

  1. 不会改变原数组 ,返回值为截取后的新数组。
  2. 有两个参数,第一个参数为开始截取的位置,第二个参数为结束的位置(第二个参数不写,默认截取到数组末尾)(从0开始数,包含第一个位置的元素但不包含第二个位置的元素)。

用法:a.slice(1[,2]) //[]内为可选参数

示例:

let a=[0,1,2,3,4,5,6,7]

a.slice(2,5);       //返回[2,3,4]   从下标为2的元素开始截取,到下标为5的元素停止(不包含下标为5的元素)
a.slice(2);			//返回[2,3,4,5,6,7]   从下标为2的元素截取到数组末尾

console.log(a);     //[0,1,2,3,4,5,6,7](slice()不改变原数组,a无变化)
复制代码

splice()

作用:

  1. 删除数组元素
  2. 添加数组元素

说明:

  1. 会改变原数组 ,返回值为截取后的新数组。
  2. 有三个参数,第一个参数为开始截取的位置,第二个参数为截取的个数,第三个参数为要添加的元素(从0开始数),返回值为被截取的元素。
  3. 第二个参数表示截取的个数,可以不写;如果第二个参数不写,默认截取到最后,且第三个参数此时无法使用。
  4. 第三个参数表示要添加的元素(可以是多个),其位置依赖于第一个参数,总是在第一个参数所在位置的元素之前添加元素(也可以理解为要被添加的元素在新数组中的位置就是第一个参数)

用法:a.splice(1[,2[,3[,[···]]]]) //[]内为可选参数

示例:

let a=[0,1,2,3,4,5,6,7]

//删除数组元素
a.splice(2,2);       //返回[2,3]  (从下标为2的元素开始截取两个元素)
console.log(a);		 //[0, 1, 4, 5, 6, 7]

a.splice(3);		//返回[5, 6, 7]  (从下标为3的元素开始截取到数组末尾)
console.log(a);		//?[0, 1, 4]

//添加数组元素
a.splice(2,0,9);			//返回[], 从下标为2的元素开始截取0个元素,并在下标为2的元素之前添加新的元素“9”
console.log(a);     //[0, 1, 9, 4]

//添加多个元素
a.splice(2,0,10,11,12);		//返回[], 从下标为2的元素开始截取0个元素,并在下标为2的元素之前添加新的元素“10”,“11”,“12”
console.log(a);			//[0, 1, 10, 11, 12, 9, 4]

//修改数组元素(其实就是先删除要修改的元素,在添加目标元素)
console.log(a);			//[0, 1, 10, 11, 12, 9, 4]
//修改数组中第三个元素(下标为2),将“10”改为“20”
a.splice(2,1,20);     //返回[10],从下标2开始截取1个元素=>“10”
console.log(a);			//[0, 1, 20, 11, 12, 9, 4]
//修改多个元素同理,只是修改第二个元素和第三个元素就好
复制代码

reverse()

作用: 翻转数组

说明: 会改变原数组 ,返回值为翻转后的数组。

用法:a.reverse()

示例:

let a=[0,1,2,4];
a.reverse();	//返回[4, 2, 1, 0]
console.log(a);	//[4, 2, 1, 0]   原数组改变
复制代码

concat()

作用:

  1. 连接数组
  2. 拷贝数组

说明:

  1. 不会改变原数组 ,返回值为连接后形成的新数组。
  2. 如果 () 中不填参数,则表示对数组a的拷贝。(当想使用一个数组a又不想改变原数组是可以使用)

用法:a.concat([b[,c[,d[...]]]]) //[]内为可选参数

示例:

let a=[0,1,2];
let b=[5,6,8];
let c=[10,11];
//连接数组
a.concat(b);	//返回[0, 1, 2, 5, 6, 8]
a.concat(b,c);  //返回[0, 1, 2, 5, 6, 8, 10, 11]
console.log(a);	//[0, 1, 2]   原数组a不改变
console.log(b);	//[5, 6, 8]   原数组b不改变

//拷贝数组(例如想得到a的翻转数组d却又不想改变a(防止其他地方使用到a时发生错误))
console.log(a);	//[0, 1, 2]   原数组a不改变
let d=a.concat().reverse();
console.log(d);			//[2, 1, 0]
console.log(a);			//[0, 1, 2]  数组a并未改变
复制代码

join()

作用:将 数组转为字符串

说明:

  1. 不会改变原数组 ,返回值为转换后的字符串。
  2. join() 中可以添加字符,用于连接数组中的元素。

用法:a.join()

示例:

let a=['hello','java','script']
a.join();	//返回	"hello,java,script"
a.join('-');	//返回	"hello-java-script"
console.log(a);	//["hello", "java", "script"]   原数组未改变
复制代码

split()

作用:将 字符串转为数组

说明:

  1. 不会改变原字符串 ,返回值为转换后的数组。
  2. split() 中可以添加字符,用于提供字符串拆分标准。

用法:a.split()

示例:

let a="hello-java-script";
a.split();	//返回 ["hello-java-script"]  不提供拆分标准,则直接将字符串变为数组中的一项,返回该数组
a.join('-');	//返回  ["hello", "java", "script"]   以"-"为标志,拆分字符串
console.log(a);	//"hello-java-script"   原字符串未改变
复制代码

sort()

作用: 排序

说明:

  1. 会改变原字符串 ,返回值为排序后的数组。
  2. 默认用字符串规则排序(转换成ACSII码,逐位比较大小)

用法:a.sort(()=>{})

示例:

let a=[3,5,6,8,11,5,22,6];
a.sort((a,b)=>a-b);	  //返回[3, 5, 5, 6, 6, 8, 11, 22]  从小到大排序
console.log(a);		//[3, 5, 5, 6, 6, 8, 11, 22]     原数组a改变
a.sort((a,b)=>b-a);	//返回?[22, 11, 8, 6, 6, 5, 5, 3] 从大到小排序
console.log(a);		//[22, 11, 8, 6, 6, 5, 5, 3]   原数组a改变
复制代码

常用的几个数学方法

Math.round()

作用:四舍五入

示例:

Math.round(7.6);        //8
Math.round(7.4);        //7
复制代码

Math.floor()

作用:向下取整

示例:

Math.floor(7.6);        //7
Math.floor(7.4);        //7
复制代码

Math.ceil()

作用:向上取整

示例:

Math.ceil(7.6);        //8
Math.ceil(7.4);        //8
复制代码

Math.pow()

作用:幂运算

示例:

Math.pow(2,4);        //16   2*2*2*2
Math.round(3,0);        //1
复制代码

Math.sqrt()

作用:开方

示例:

Math.sqrt(25);        //5
Math.sqrt(81);        //9
复制代码

Math.abs()

作用:取绝对值

示例:

Math.abs(7.6);        //7.6
Math.abs(-7.4);        //7.4
复制代码

Math.random()

作用:随机数 (取[0,1)之间的随机数,左闭右开区间)

示例:

//取x-y的随机数
Math.round(Math.random()*(y-x)+x);        
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值