算法中常用数组方法和操作字符方法

算法题或者实际中常用的一些数组字符数字的方法,容易忘记和用错,特意记录一下

字符串与数组

1、 concat()

连接两个或多个数组 也可以连接具体的值
不改变原数组
返回被连接数组的一个副本

// arrayObject.concat(arrayX,arrayX,......,arrayX)

var arr1 = [1,2];
var arr2 = [3,4];
var arr3 = [5,6];
var arr = arr1.concat(arr2,arr3);
var arrN = arr1.concat(arr2);

var a = [1,2,3];
var newa = a.concat(4,5));

2、join()

把数组中所有元素放入一个字符串 分隔符如果不填的话默认为 ,
不改变原数组
返回字符串

var arr = ['www','now','com'];
var str = arr.join('.');
// www.now.com

3、 slice()

从已有的数组中返回选定的元素
不改变原数组
返回一个新数组
参数是起使位置和终止位置,第二个参数如果不写的话默认从起使位置到数组末尾
开始位置如果取负数,就是倒数某位开始

var a = [1,2,3];
var newa = a.slice(0,1);

4、 toString()

把数组转为字符串
不改变原数组
返回数组的字符串形式
改变原数组

5、 pop()

删除数组最后一个元素,如果数组为空,则不改变数组,返回undefined
改变原数组 当然长度会有所改变
返回被删除的元素

var a = [1,2,3];
arr.pop(); // 3

6、 push()

向数组末尾添加一个或多个元素
改变原数组 当然长度会有所改变
返回新数组的长度

var a = [1,2,3];
arr.push(6); // 4

7、 reverse()

颠倒数组中元素的顺序
改变原数组
返回该数组

var a = [1,2,3];
arr.reverse(); // 3,2,1

8、 shift()

把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined
改变原数组
返回第一个元素的值

9、 sort()

对数组元素进行排序(ascii)
改变原数组
返回该数组
注意它排序的依据容易带来的问题 一般要简单改造再使用

10、 splice()

从数组中添加/删除项目
改变原数组
返回被删除的元素
第一个参数是开始位置,第二个是要删除的数目,如果设置为0就是不删除,第三个参数是可选项,是给数组新添加的数据

// arrayObject.splice(index,howmany,item1,.....,itemX)

var a = [1,2,3];
var newa = a.splice(0,1,5);
// 1,5,3

11、 unshift()

向数组的开头添加一个或多个元素
改变原数组
返回新数组的长度

// arrayObject.unshift(newelement1,newelement2,....,newelementX)

var a = [1,2,3];
a.unshift(5,6,7);
// 5,6,7,1,2,3

12、replace()

用一些字符替換另一些字符,或者替换正则匹配的子串

// stringObject.replace(regexp/substr,replacement)

var text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript");

13、substr()

从start下标起截取指定数目的字符
若不指定数目,则从开始位置截取到结尾

// stringObject.substr(start,length)

14、substring()

截取指定位置间的字符
第二个参数省略的话,默认截取到末尾
如果两个参数顺序可以更换
但是它不接受负值作为参数

15、toLowerCase() toUpperCasse()

字符串大小写转化

var str = assdWdffg;
str.toLowerCase()

16、charAt()

可返回指定位置的字符

字符串与数字

1、Number( ) 全局函数

另外:如果是对象,则调用对象的valueOf()方法,然后普通number规则转换返回的值。如果转换的结果是NaN,则调用的对象的toString()方法,然后再次依照number规则转化。

var num1=Number("Hello World"); //NaN

var num2=Number(""); //0

var num3=Number("000011"); //11 // 去掉前导0

var num4=Number(true); //1 // false当然是0了

var num5=Number("num123") //NaN // 包含其他字符,所以仍然是NaN

2、parseInt( ): 全局函数

  • parseInt()函数可以将字符串转换成一个整数
  • 与Number()函数相比,parseInt()函数不仅可以解析纯数字字符串,也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。
  • parseInt()函数增加了第二参数用于指定第一个参数中的值是多少进制。
  • 当parseInt()函数所解析的是浮点数字符串时,取整操作所使用的方法为“向下取整(小)”。
var num1=parseInt("num123"); //NaN

var num2=parseInt(""); //NaN

var num3=parseInt("123.45") //123

var num4=parseInt("101010",2) //42

var num5=parseInt("123num") //123

var num6=parseInt("0xff") //255
var num7 = parseInt('FF', 16) // 255

3、parseFloat( ): 全局函数

  • parseFloat()也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。
  • 与parseInt()不同的是,parseFloat()可以将字符串转换成浮点数;
  • 但同时,parseFloat()只接受一个参数,因此只能能处理10进制字符串。
  • 可解析为整数的数(没有小数点,或者小数点后面都是零)会返回整数。
var num1=parseFloat("1234blue"); //1234

var num2=parseFloat("0xA"); //0

var num3=parseFloat("0908.5"); //908.5

var num4=parseFloat("3.125e7"); //31250000

var num5=parseFloat("123.45.67") //123.45

var num6=parseFloat("") //NaN

var num7=parseFloat("num123") //NaN

4、 toFixed()

* 可把 Number 四舍五入为指定小数位数的数字。
* 四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一
1.35.toFixed(1) // 1.4 正确
1.335.toFixed(2) // 1.33 错误
1.3335.toFixed(3) // 1.333 错误
1.33335.toFixed(4) // 1.3334 正确

5、Math.ceil()

  • 对一个数进行向上取整
Math.ceil(1.2) // 2
Math.ceil(-1.2) // -1

6、Math.floor()

  • 对一个数进行向下取整。
Math.ceil(1.2) // 1
Math.ceil(-1.2) // -2

7、Math.round()

  • 四舍五入取整。

8、Math.random() 取[0,1)的随机小数

案例1:获取[0,10]的随机整数

console.log(parseInt(Math.random()*10));//未包含10
console.log(parseInt(Math.random()*10+1));//包含10

案例2:获取[n,m]之间的随机整数

Math.round(Math.random()*(m-n)+n)

9、Math.max() and Max.min()

获取一组数据中的最大值和最小值

console.log(Math.max(10,1,9,100,200,45,78));
console.log(Math.min(10,1,9,100,200,45,78));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值