定义数组的方式
(javascript数组不越界,越界会返回undefined)
var arr = [];
var arr = new Array();
var arr = new Array(10);//长度为10的空数组
var arr1 = [10];//数组第一位为10
数组常用方法
1.push,pop,shift,unshift,reverse(改变原数组)
// 数组常用的的方法
// push在数组的最后一位添加数据;
var arr = [1,2];
Array.prototype.push = function(){
for(var i = 0;i<arguments.length;i ++)
{
this[this.length] = arguments[i];
}
arr[arr.length];
return this.length;
}
// arr.pop把数组的最后一位剪切出来
// arr.shift删除第一位数据
//arr.unshift在数组的前面加数据
// arr.reverse()倒叙数组
// splice(0,2)由第零位开始切2位,留下后面的
// splice(1,1,0,0,0)第二位以后的参数会被放到切口处
2.sort(改变原数组)
//arr.sort()排序:由小到大。arr.sort().reverse()降序(默认按照字符串大小排序).
//必须写俩形参
//看返回值1)当返回值为负数时,那么前面的数放在前面
//2)为正数,那么后面的数放前面
//3)为0,不动
//解决方法
var arr = [1,2,3,4,5,6,7,8,9,10];
arr.sort(function (a,b) {
// return a - b;//升序
return b - a;//降序
});
3.join,concat,split,toString,slice
//concat拼接两个数组(不改变原数组的方法)
arr = [1,2,3,4,5];
arr1 = [7,8,9];
//数组的toString把用字符串的形式展示
// slice(从该位开始截取,截取到该位)||(一个参数表示从第几位开始截取一直截取到最后,负数表示从倒数第几个开始截取)
var newArray = arr.slice(1,3);
//join数组之间用join(“”)里面的参数连接成字符串
eg.arr.join("-")//-->"1-2-3-4-5"
arr.split('-')//"与join互逆"
数组方法的应用
1.对象按年龄排序
var cheng = {
name : 'cheng',
age : 18,
sex : 'male'
}
var deng = {
name : 'deng',
age : 40,
sex : 'male'
}
var zhang = {
name : 'zhang',
age : 20,
sex : 'male'
}
var arr = [zhang,deng,cheng];
arr.sort(function(a,b){
return a.age - b.age;//升序
// return b.age - a.age;//降序
});
2.按字符串长度排序
var arr = ['ac', 'weer', 'sfd', 'adfhg', 'q', 'seraffggd', 'safaef'];
arr.sort(function (a, b) {
return a.length -b.length;//升序
// return b.length - a.length;//降序
});
3.根据字节长度排序
function retBytes(str) {
var count = str.length;
for (var i = 0; i < str.length; i++) {
if (str.charCodeAt(i) > 255) {
count++;
}
}
return count;
}
var arr = ['ac邓', 'weer', 'sfd老邓', 'adfhg', 'q', 'seraffggd', 'safaef'];
arr.sort(function (a, b) {
return retBytes(a) - retBytes(b);
return retBytes(b) - retBytes(a);
});
4.join的应用(连接字符串)
var str = 'alibabb';
var str1 = 'baidu';
var str2 = 'tencent';
var str3 = 'toutiao';
var str4 = 'wangyi';
var str5 = 'xiaomi';
var str6 = 'nv';
var arr = [str,str1,str2,str3,str4,str5,str6];
console.log(arr.join("")
类数组
//类数组(eg.arguments:像数组但是不能使用数组的方法)
var obj = {
'2' : 'a',
'3' : 'b',
'4' : 'c',
'length' : 3,
'push' : Array.prototype.push,
'splice' : Array.prototype.splice
}
//属性要为索引(数字)属性,必须有length属性,最好加上push
//优点
Array.prototype.push = function(target){
this[this.length] = target;
this.length ++;
}