JavaScript 之数组

数组

JavaScript数组的定义方法和对象相似。

定义方法

第一种:数组字面量定义:

var arr = [1,2,3,4,5]; //建议第一种

第二种:构造函数定义方法。使用Array.prototype原型

var arr1 = new Array(num)//num 可以传参也可以不传,表示多长的数组。
数组的读和写

      数组的读和写,没有太多的规则,

var arr = [];
console.log(arr[10]);
//undefined

       访问数组,我们知道访问对象属性的时候,如果对象原型链上没有该属性,返回undefined 不会报错,上面说到,数组的原型是Array。prototype再访问this对象的时候,发现没有和对象一样返回undefined。

var arr = [];
arr[5] = 10;
console.log(arr);
//输出 undefined undefined undefined undefined 10

    数组写入也没有太大的规则,一个空数组,当你arr[5]的位置插入一个数的话,系统会在前面默认为undefined。

    数组的方法

           数组的方法有两种,分为改变原数组的方法和不改变原数组的方法。

        改变原数组
                push():在数组的尾部插入值,可以插入多个
var arr = [1,2,3];
arr.push(4,5,6);
console(arr);
//[1,2,3,4,5,6]
                pop():在数组的尾部删除一个数,并返回删除的值。
var arr = [1,2,3,4];
var num = arr.pop();
console(num);
console.log(arr);
// 4  [1,2,3]
                unshift():方法和push()一样,只是方向相反,这个是在头部操作。
var arr = [1,2,3];
arr.unshift(0,0,0);
console.log(arr);
//[0,0,0,1,2,3]
                shift():方法和pop()一样,方向相反,头部操作。
var arr = [1,2,3,4];
var num = arr.shift();
console.log(num);
console.log(arr);
// 1   [2,3,4]
                splice()
// arr.splice(从第几位开始,截取多少长度,在切口处添加新的数据(多少个都行))
var arr = [1,2,3,4,5,6,7];
arr.splice(2,4,0,0,0,0);
console.log(arr);
//[1,2,0,0,0,0,7]
                sort():sort在排序的时候会按照字符的ascll码来判断,有时候回发生错误,所以sort给我们定义借口,让我们自己来定义规则。

                规则:1.必须有两个参数。
                          2.返回值:1)当返回值为负时,当前的数在前面。2)为正数时,后面的数在前面。3)为0时,不变

var arr = [1,4,7,8,5,2,3,6,9];
arr.sort(function(a,b){
return a - b; //正序        至于为什么是a - b 和 b - a 通过数学运算得出。
return b - a; //逆序
})
console.log(arr);
// 正序 [1,2,3,4,5,6,7,8,9]
// 逆序 [9,8,7,6,5,4,3,2,1]
               有序数组的乱序----运用排序方法

               引入Math函数的随机数,Math.random()-----产生0 - 1 之间的数。每次逆序和正序次数随机就可以做到乱序,每次都不相同

        

var arr = [1,2,3,4,5,6];
arr.sort(function(a,b){
var num = Math.floor(Math.random() * 2);
return num == 1 ? a - b : b - a;
})

             对象按照属性值排序
var arr = [1,2,3,4,5,6];
arr.sort(function(a,b){
var num = Math.floor(Math.random() * 2);
return num == 1 ? a - b : b - a;
}
var wang = {
	name : "wang",
	age : 20,
	sex : "male",
	face : "handsome",
}
var zhou = {
	name : "zhou",
	age : 18,
	sex : "male",
	face : "beautiful",
}
var  ke = {
	name : "xin",
	age : 19,
	face : "abc",
}
var arr = [wang, zhou, ke];
arr.sort(function(a,b){
	return b.age - a.age;
})

    不改变原数组               

            concat():连接数组,原数组不变,产生新数组。
var arr = [1,2,3];
var arr1 = [4,5,6];
console.log(arr.concat(arr1));
//[1,2,3,4,5,6]
            toString():把数组转换成字符串,原数组不变。
var arr = [1,2,3,4];
console.log(arr.toString());
// '1,2,3,4'
      slice(从该位开始截取,截取到该位 )-->两个参数 ;
            (从第几位截取一直到末尾)-->一个参数;
            (不写参数)-->整个截取
                必须有值接受。
var arr = [1,2,3,4];
var num = arr.slice(1,2);
console.log(num);
//[2]
        join("")参数可以写,可以不接,按照什么方式把数组中的数连接,返回字符串,不写的话,默认用逗号连接
        
var str = "a";
var str1 = "b";
var str2 = "c";	
var str3 = "d";
var str4 = "e";
var str5 = "f";
var str6 = "g";
var arr =[str,str1,str2,str3,str4,str5,str6]; //数组是散列结构
var str7 = arr.join(""); //最好的连接方法
console.log(str7); 
//'abcdefg' 
        split(“”):这个是字符串中的应用,和join相反,这个是按照什么东西拆分,返回数组
var str = 'a-b-c-d';
var arr = str.split("-");
console.log(arr);
//['a','b','c','d']
        

JavaScript语言我个人感觉是最有意思的了,我也是一个初学者,遇到问题,喜欢在博客上分享,
也希望能帮到大家。一个初学者,有什么不足或者纰漏的话,希望在下面评论出来,相互学习,共同进步。

     --主页传送门--
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值