Array的内置方法api
判断数组与转换数组
Instanceof:是一个关键字用来判断A类型是否是B类型
返回值类型:boolean
var arr1 = [1,2,3];
var arr2 = new Array();
var str1 = "s";
var str2 = new String("s");
alert(arr1 instanceof Array );//结果为true,arr1是Array(数组类型)
alert(arr2 instanceof Array );//结果为true,arr2是Array(数组类型)
alert(str1 instanceof Array );//结果为false,str1不是Array(数组类型)
alert(str2 instanceof Array );//结果为false,str2不是Array(数组类型)
Array.isArray() Html5中新增,用来判断是不是数组
返回值类型:boolean
调用者:Array
参数:变量(被检测的值)
var arr1 = [1,2,3];
var arr2 = new Array();
var str1 = "s";
var str2 = new String("s");
alert(Array.isArray(arr1));//结果为true,arr1是Array(数组类型)
alert(Array.isArray(arr2));//结果为true,arr2是Array(数组类型)
alert(Array.isArray(str1));//结果为false,str1不是Array(数组类型)
alert(Array.isArray(str2));//结果为false,str2不是Array(数组类型)
toString() 把数组转换成字符串,每项用,分割
var str3 = arr1.toString();
Join 把数组元素用特殊方式链接成字符串(参数决定用什么链接,无参默认用逗号链接)
*变量可以有可以没有。不写默认用逗号分隔,无缝连接用空字符串。
var arr1 = ["金克丝","凯特琳","卡莉斯塔","崔斯塔那","伊泽瑞尔"];
var str1 = arr1.join();
var str2 = arr1.join(" ")//如果用空格的话,那么元素之间会有一个空格
var str3 = arr1.join("");//用空字符串,链接元素,无缝连接
var str4 = arr1.join("|");
console.log(str1);//运行结果为:金克丝,凯特琳,卡莉斯塔,崔斯塔那,伊泽瑞尔
console.log(str2);//运行结果为:金克丝 凯特琳 卡莉斯塔 崔斯塔那 伊泽瑞尔
console.log(str3);//运行结果为:金克丝凯特琳卡莉斯塔崔斯塔那伊泽瑞尔
console.log(str4);//运行结果为:金克丝|凯特琳|卡莉斯塔|崔斯塔那|伊泽瑞尔
数组增删和换位置(原数组被修改)
push() 在数组最后面插入项,返回数组的长度
返回值:返回数组的长度
var arr = ["金克丝","凯特琳","卡莉斯塔","崔斯塔那","伊泽瑞尔"];
var arr1 = [1,2,3];
console.log(arr);
var aaa = arr.push("a");
var aaa = arr.push("a","b");
var aaa = arr.push(arr1);//也可添加数组
console.log(aaa);
console.log(arr);
pop() 取出数组中的最后一项,返回新被删除的元素
返回值:返回新被删除的元素
var arr = ["金克丝","凯特琳","卡莉斯塔","崔斯塔那","伊泽瑞尔"];
var arr1 = [1,2,3];
aaa = arr.pop();
console.log(aaa);
console.log(arr);
unshift()在数组最前面插入项,返回数组的长度
返回值:返回数组的长度
var arr = ["金克丝","凯特琳","卡莉斯塔","崔斯塔那","伊泽瑞尔"];
var arr1 = [1,2,3];
aaa = arr.unshift("abc");
console.log(aaa);
console.log(arr);//打印内容["abc", "金克丝", "凯特琳", "卡莉斯塔", "崔斯塔那", "伊泽瑞尔"]
shift() 取出数组中的第一个元素,返回最后一项
返回值:返回取出的一项
var arr = ["金克丝","凯特琳","卡莉斯塔","崔斯塔那","伊泽瑞尔"];
var arr1 = [1,2,3];
aaa = arr.shift();
console.log(aaa);
console.log(arr);
reverse()翻转数组(原数组将被反转,返回值也是被反转后的数组)
返回值:返回值也是被反转后的数组
var arr = ["e","d","c","b","a"];
console.log(arr);
var aaa = arr.reverse();
console.log(aaa);
console.log(arr);
sort();给数组排序,返回排序后的数组。如何排序看参数。
*无参:按照数组元素的首字符对应的Unicode编码值从小到大排列数组元素。
带参:必须为函数(回调函数–callback)。函数中带有两个参数,代表数组中的前后元素。如果计算后(a-b),返回值为负数,a排b前面。等于0不动.返回值为正数,a排b后面。*
就是说:a-b为升序排列,b-a为降序排列
var arr = ["e","d","c","b","a"];
var arr2 = [7,6,15,4,13,2,1];
console.log(arr);
console.log(arr.sort());
console.log(arr2);
console.log(arr2.sort());
//回调函数 a-b升序,b-a降序
console.log(arr2.sort(function (a,b) {
return a-b;
}));
console.log(arr2.sort(function (a,b) {
return b-a;
}));
重点:数组排序:sort(功能很强大!能对数字和字母进行排列。
问题:只能通过第一位排列。解决问题办法:设计的时候就是这么设计的,可以通过回掉函数进行规则设置
数组的连接与截取
concat()把参数拼接到当前数组
返回值:返回值也是连接后的数组
var arr1 = ["a","b","c"];
var arr2 = [1,2,3];
var arr3 = arr1.concat(arr2);
console.log(arr1);
console.log(arr2);
console.log(arr3);
slice()从当前数组中截取一个新的数组,不影响原来的数组
参数:start从0开始,end从1开始
var arr1 = ["a","b","c"];
var arr2 = [1,2,3];
var arr3 = arr1.concat(arr2);
console.log(arr3);
var arr4 = arr3.slice(2);//打印结果["c",1,2,3]
var arr4 = arr3.slice(-2);//打印结果[2,3]
var arr4 = arr3.slice(4,2);//打印结果[]
var arr4 = arr3.slice(2,4);//打印结果["c", 1]索引值包括坐标的不包括右边的。
console.log(arr1);
console.log(arr4);
注意:索引值包括坐标的不包括右边的。
替换的元素不能是以数组形式存在,否则将整个数组放进原数组中。