JavaScript Array的方法

来源:互联网 发布:申请淘宝店铺多少钱 编辑:程序博客网 时间:2024/06/07 08:47

JavaScript高级设计程序(第三版)学习笔记


toString() :返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串 。
valueOf() :调用valueOf()返回的还是数组

var colors = ["red", "blue", "green"]; // 创建一个包含 3 个字符串的数组alert(colors.toString()); // red,blue,greenalert(colors.valueOf()); // red,blue,greenalert(colors); // red,blue,greenalert(Array.isArray(colors.valueOf()));  // turealert(Array.isArray(colors.toString()));// false alert(typeof colors.toString() ); // stringalert(typeof colors.valueOf() ); //objectalert(colors.valueOf() instanceof Array);//ture
调用valueOf()方法时,直接将数组传递给了alert(),由于alert()要接收字符串参数,所以它会在后台调用toString()方法,由此会得到与直接调用toString()方法相同的结果。


join() :只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串如果不给join()方法传入任何值,或者给它传入undefined,则使用逗号作为分隔符。

var colors = ["red", "green", "blue"];alert(colors.join()); //red,green,bluealert(colors.join(""));//redgreenbluealert(colors.join(" "));//red green blue

reverse() ,sort() :会作用于数组本身。

var values = [1, 2, 3, 4, 5];values.reverse();alert(values); //5,4,3,2,1数组自身发生了变化var values = [0, 1, 5, 10, 15];values.sort();alert(values); //0,1,10,15,5


面试题:

var arr = new Array(1 ,3 ,5);    arr[4]='z';    arr2 = arr.reverse();    arr3 = arr.concat(arr2);    alert(arr3);//z,,5,3,1,z,,5,3,1
注意:arr变成了[z, ,5,3,1]而不是原来的[1,3,5, ,z]。






数组去重面试:

function hasContain(arr, num){var i=0;for(i=0;i<arr.length;i++){if(arr[i]==num){return true;}}return false;}var arr=[1,2,3,4,1,5,6,4,8];var aResult=[];var i=0;for(i=0;i<arr.length;i++){if(!hasContain(aResult, arr[i])){aResult.push(arr[i]);}}alert(aResult);



原创粉丝点击