重温javascript---方法(array)
2016-03-17 12:11
483 查看
前两天去面试,很多都问到了js中处理数组的问题,当时本人脑子一热就是各种循环,额,每次面试官都问我有没有更好的方法,然后,然后就没有然后了。
js中提供的方法其实很多,长时间不用就会被丢到南海晒太阳了,于是自己也快被丢到南海晒太阳去了……
concat方法会产生一个新数组,包含一份array的浅复制(shallow copy)并把一个或多个参数item附加在其后。
array.join(separator)
join方法是把一个array构造成一个字符串。它是用一个separator分隔符将array中的每个元素连接在一起,默认的连接符是”,”。我们也可以使用空字符串作为连接符。
array.pop() 和array.push(item…)
这里牵扯到栈的概念,我们可以把栈比作是一口井,当我们向井里放东西的时候,肯定是从上面运到下面直到堆到井口。当我们从井里取东西的时候,肯定是从井口开始取,直到取到井底。这是一个“先进后出,后进先出”的方式。
array.pop()和array.push(item…)这两个方法就可以使数组像井一样的工作,pop方法已出array中的最后一个元素并且返回该元素。如果array是empty,则返回undefinded。push方法是把一个或者多个参数item附加到一个数组的尾部,和concat不同的是,它会修改array,如果参数是一个数组,它会把这个数组作为单个元素添加到数组中,并且修改这个array的新长度值。
array.reverse()
reverse方法反转array里的元素顺序,并且返回array本身。
array.shift()
shift方法移除数组的第一个元素并返回该元素。若这个数组是空的,则返回undefined。
array.slice(start,end)
slice方法对array中的一段做浅复制,从array[start]开始,复制到array[end]结束。end参数是可选的,默认是该数组的长度。
如果两个参数中任一个是负数,则数组的长度会和它们相加。如果start大于等于数组的长度,结果会是一个新的空数组。
array.sort(comparefn)
sort方法对array中的内容进行排序。不过在给数字排序时需要使用比较函数。比较函数需要接受两个参数,如果这两个参数相等就返回0,如果第一个参数应该排列在前面则返回一个负值,相反,如果第二个参数应该排列在前面则返回一个正数。
上面的数字排序并没有完全正确,试试下面的方法
上面的这个函数可以使数字正确排序了。更多的函数排序方法以后再说。
array.splice(start,deleteCount,item…)
splice方法从数组中移除一个或者多个元素,并用新的item代替它们。第一个参数start是从数组要移除的元素的起始位置,第二个参数就是要移除元素的个数,剩下如果还有的参数就是替换的元素。它返回一个包括被移除的元素的数组。
不要将splice方法和slice方法弄混,slice方法是获取数组的指定位置的值,而splice方法是移除指定位置的值并且返回的是移除的数值。
array.unshift(item….)
unshift方法像push方法用来把元素添加到数组中,但是它将item的元素插入到数组的头部而不是尾部,它的返回值是数组的新长度。
上面的方法就是array常用的方法,其他的一些方法会很快总结。
js中提供的方法其实很多,长时间不用就会被丢到南海晒太阳了,于是自己也快被丢到南海晒太阳去了……
Array
array.concat(item…)concat方法会产生一个新数组,包含一份array的浅复制(shallow copy)并把一个或多个参数item附加在其后。
var a=[1,2,3]; var b=[4,5,6]; var c= a.concat(b,7,8); alert(c);//结果为:1,2,3,4,5,6,7,8
array.join(separator)
join方法是把一个array构造成一个字符串。它是用一个separator分隔符将array中的每个元素连接在一起,默认的连接符是”,”。我们也可以使用空字符串作为连接符。
var a=[1,2,3]; var b=[4,5,6]; var c= a.concat(b,7,8); var d=c.join(""); alert(d);//结果为 12345678
array.pop() 和array.push(item…)
这里牵扯到栈的概念,我们可以把栈比作是一口井,当我们向井里放东西的时候,肯定是从上面运到下面直到堆到井口。当我们从井里取东西的时候,肯定是从井口开始取,直到取到井底。这是一个“先进后出,后进先出”的方式。
array.pop()和array.push(item…)这两个方法就可以使数组像井一样的工作,pop方法已出array中的最后一个元素并且返回该元素。如果array是empty,则返回undefinded。push方法是把一个或者多个参数item附加到一个数组的尾部,和concat不同的是,它会修改array,如果参数是一个数组,它会把这个数组作为单个元素添加到数组中,并且修改这个array的新长度值。
var a=[1,2,3]; var b=[4,5,6]; var c= a.concat(b,7,8); //pop()方法 和push()方法 var e= c.pop(); alert(e);//结果是 8 var f=['a','b','c']; var g= f.push(a,b); alert(f);//结果是a,b,c,1,2,3,4,5,6 alert(g); //结果 5 在这里注意 push方法返回的是新数组的长度值
array.reverse()
reverse方法反转array里的元素顺序,并且返回array本身。
var a=[1,2,3]; var b=a.reverse(); alert(a);//结果 3,2,1 alert(b);//结果 3,2,1
array.shift()
shift方法移除数组的第一个元素并返回该元素。若这个数组是空的,则返回undefined。
var a=[1,2,3]; var b=a.shift(); alert(a);//结果 2,3 alert(b);//结果 1
array.slice(start,end)
slice方法对array中的一段做浅复制,从array[start]开始,复制到array[end]结束。end参数是可选的,默认是该数组的长度。
如果两个参数中任一个是负数,则数组的长度会和它们相加。如果start大于等于数组的长度,结果会是一个新的空数组。
var a=[1,2,3,4,5]; var b= a.slice(1,3); var c= a.slice(1); var d= a.slice(-2,3); var e= a.slice(6,9); alert(b);//结果 2,3 alert(c);//结果 2,3,4,5 console.log(d);//结果 [] console.log(e);//结果 []
array.sort(comparefn)
sort方法对array中的内容进行排序。不过在给数字排序时需要使用比较函数。比较函数需要接受两个参数,如果这两个参数相等就返回0,如果第一个参数应该排列在前面则返回一个负值,相反,如果第二个参数应该排列在前面则返回一个正数。
var a=[20,35,21,5,15,39,90,0]; var b=a.sort(); alert(a);//结果 0,15,20,21,35,39,5,90 alert(b);//结果 0,15,20,21,35,39,5,90
上面的数字排序并没有完全正确,试试下面的方法
var a=[20,35,21,5,15,39,90,0]; var b=a.sort(function(n,s){ return n-s; }) alert(b);//结果 0,5,15,20,21,35,39,90
上面的这个函数可以使数字正确排序了。更多的函数排序方法以后再说。
array.splice(start,deleteCount,item…)
splice方法从数组中移除一个或者多个元素,并用新的item代替它们。第一个参数start是从数组要移除的元素的起始位置,第二个参数就是要移除元素的个数,剩下如果还有的参数就是替换的元素。它返回一个包括被移除的元素的数组。
var a=[0,1,2,3,4,5,6]; var b=a.splice(2,2,3,4,5);//a是 0,1,3,4,5,4,5,6 var c=a.splice(2,2); alert(b);//结果 2,3 alert(c);//结果 3,4 alert(a);//结果 0,1,5,4,5,6
不要将splice方法和slice方法弄混,slice方法是获取数组的指定位置的值,而splice方法是移除指定位置的值并且返回的是移除的数值。
array.unshift(item….)
unshift方法像push方法用来把元素添加到数组中,但是它将item的元素插入到数组的头部而不是尾部,它的返回值是数组的新长度。
var a=[1,2,3,4]; var b=a.unshift(5,6,7); alert(a);//结果 5,6,7,1,2,3,4 alert(b);//结果 7
上面的方法就是array常用的方法,其他的一些方法会很快总结。
相关文章推荐
- 用firebug的console调试JavaScript后不需删除调试代码
- 前台,js获取选中的下拉框的值
- 用JAVA编写浏览器内核之实现javascript的document对象与内置方法
- JavaScript函数内部属性和函数方法实例详解
- 造轮子和用轮子:快速入门JavaScript模块化
- JavaScript HTML DOM EventListener
- 引爆你的Javascript代码进化(转)
- Web报表工具FineReport的JS API开发(一)
- js 打开新页面在屏幕中间
- L2-初探JavaScript魅力(1)
- 标签--fieldset
- js调用屏幕宽度
- JavaScript 闭包
- js 判断id 是否存在
- js中的cookie使用
- JSP的九大内置对象(详解)
- js获取项目根路径
- js金额转换大写
- JavaScript 函数调用
- javascript笔记——cookie解析