算法题或者实际中常用的一些数组字符数字的方法,容易忘记和用错,特意记录一下
字符串与数组
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));