1.sort & split & join的用法
【网易2016内推笔试题】
var a = "Hello World".split("").sort().join("");
alert(a); //HWdelllor
知识点:
①sort( )方法:按升序排列数组项。
【说明】
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,即按照字符编码的顺序进行排序。(空格=32,0=48,A-65,a-97)
为了实现排序,sort( )方法会调用每个数组项的toString( )转型方法,然后比较得到的字符串,以确定如何排序。
即使数组的每一项都是数值,sort( )方法比较的也是字符串。
例如:
var values = [0,1,5,10,15];
values.sort();
alert(values); //0,1,10,15,5
②split() 方法:把一个字符串分割成字符串数组。
【语法】
stringObject.split(separator,howmany)
separator:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
例如:
var str="How are you doing today?"
document.write(str.split(" ") + "<br />");
document.write(str.split("") + "<br />")
document.write(str.split(" ",3))
OUT:
How,are,you,doing,today?
H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?
How,are,you
③join() 方法:把数组中的所有元素放入一个字符串。
【语法】
arrayObject.join(separator)
separator:可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
2.forEach的用法
【网易2016内推笔试题】
var arr = [{a:1},{}];
arr.forEach(function(item,idx){
item.b = idx;
});
console.log(arr); //[{a:1,b:0},{b:1}]
//解析:
forEach对数组的每一项运行item.b = idx;
数组的第0项是{a:1},运行item.b = idx相当于给该项{a:1}添加b属性,值为0;
数组的第1项是{ },运行item.b = idx相当于给该项{ }添加b属性,值为1。
知识点:
forEach() 方法:对数组的每一项运行给定函数。没有返回值。
【语法】
Array.forEach(function(item,index,array){
//执行某些操作
}[,作用域对象]);
该方法接收2个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值。
传入这些方法中的函数会接收3个参数:
数组项的值item、该项在数组中的位置index和数组对象本身array。
3.闭包
【网易2016内推笔试题】
var a =