数组方法
js提供了一套作用于数组的方法。这些方法是被存储在Array.prototype中的函数,它是可以被扩充的。
在学习js数组方法之前应该大概了解浅复制和深复制的概念。
深复制:在计算机中开辟了一块内存地址用于存放复制的对象。
浅复制:仅仅是指向被复制的内存地址,如果原地址中对象被改变了,那么浅复制出来的对象也会相应的改变。
他们两个最根本的区别在于是否真正获取了一个对象的复制实体,而不是引用。
1:array.concat()
contat方法是连接两个数组并返回一个新的数组,它包含array的浅复制。
2:array.join()
join方法是将一个数组通过括号里面的参数拼接成一个字符串,默认是通过 ‘,’ 拼接。
3:array.push()
push方法将一个或者多个参数添加到数组的末尾。它会修改原本的数组,返回的是这个数组的新长度值。
var arr = ['a','b','c'];
var a = arr.push('d');
console.log(arr1)
//a=4,arr = ['a','b','c','d']
4:array.pop()
pop方法将数组的最后一个元素移除。它会修改原来的数组并返回该元素。
var arr = ['a','b','c'];
var a = arr.pop();
//arr = ['a','b'];a = c
5:array.unshift()
unshift方法与push方法相反,是每次往数组的前面插入数值。返回的也是这个数组的新长度。
var arr = ['a','b','c'];
var a = arr.unshift();
//arr = ['d','a','b','c'];a = 4
6:array.shift()
shift方法与pop方法相反,是每次移除数组的第一个元素。返回的也是这个元素。
var arr = ['a','b','c'];
var a = arr.shift();
//arr = ['b','c'];a = ‘a'
7:array.reverse()
reverse方法反转array中的元素的顺序。它返回当前的数组。
var arr = ['1','2','3'];
var a = arr.reverse();
//arr = a = ['3','2','1']
8:array.slice()
slice方法对数组中的一段做浅复制。它会接受一个或两个参数。如果是一个参数,那么就是从这个位置开始截取到数组结尾。如果是两个参数,那么就从第一个参数开始截取到第二个参数的位置(不含第二个参数)。如果遇到负数,会从后面开始查询。
var arr = ['1','2','3'];
var b = arr.slice(1,2);
var a = arr.slice(-1);
//arr = ['1','2','3'],b = '1',a = '3'
9:array.splice()
splice方法恐怕要算是最大的数组方法了。它有很多种用法。主要用途是向数组的中部插入项。
删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数。
var arr = ['1','2','3'];
var b = arr.splice(0,2);
//arr = ['3'],b = ['1','2']
插入:可以向指定位置插入任意数量的项,只需提供3个参数:其实位置,0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四,第五等等。
var arr = ['1','2','3'];
var b = arr.splice(0,0,'4','5');
//arr = ['4','5','1','2','3'],b = []
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需提供3个参数:其实位置,要删除的项数和要插入的项。
var arr = ['1','2','3'];
var b = arr.splice(0,2,'4','5');
//arr = ['4','5','3'],b = ['1','2']
字符串方法
1:string.charAt()
charAt()方法返回在该位置的字符。如果小于0或者大于字符串的长度,它就会返回空字符串。
var str = 'zhang';
var it = str.charAt(2);
//it = 'a';
2:string.charCodeAt()
charCodeAt()方法返回在该位置的字符的unicode值,以整数形式表示。如果小于0或者大于字符串的长度,它就会返回NaN。
var str = 'zhang';
var it = str.charCodeAt(2);
//it = 97
3:string.indexOf()
indexOf()方法可以接受一个或者两个参数。如果接受一个参数,就从头开始查找这个参数出现的位置;如果接受两个参数,就从第二个参数的位置开始查找这个参数出现的位置。
var text = 'zhangzzang';
var p = text.indexOf('z');
var m = text.indexOf('z',3);
var l = text.indexOf('z',20)
//p=0;m=5;l=-1
4:string.split()
split()方法把字符串通过第一个参数连接成数组。
var text = '192.68.667.6';
var b = text.split('.');
//b = ['192','68','667','6'];