1、创建数组:
创建数组的三种方式
//--------------------------------------------------------------
var arr = [] // -->数组字面量
var arr = new Array() // --> 构造函数创建数组,()里面是参数,一个值时表示length属性
var arr = Array()
创建对象的三种方式
//--------------------------------------------------------------
var obj = {} //对象字面量
var obj = new Object() // --> 构造函数创建对象
var obj = Object()
数组是对象的一种特殊的形式
var arr = [1, 2, 3, 4, 5, 6];
//数组下标值(索引值),英文index
var obj = {
0: 1,
1: 2,
2: 3,
3: 4,
4: 5,
5: 6
}
var arr = [, , , 4, 5, 6,]; // 在数组中并不是每个都有值,这种数组称为稀松数组
// ---> [ empty × 3, 4, 5, 6] 最后一个逗号后面是空的就会被截掉
// -------------------------------------------------------------
var arr1 = new Array(1,2,,3,4)
var arr1 = new Array(1,2,,3,4,)
var arr1 = new Array(,1,2,3,4)
// 报错,因为这里是参数,不能为空
2、 数组的方法: 数组的所有方法都是继承自Array.prototype
案例一: 添加数组的方法 push() ,unshift();
//push unshift 返回的是执行了方法后数组的长度
var arr = [2, 3, 4];
arr.push(5); // --> 在数组最后一个值后加
arr.unshift(0,1) // --> 在数组的最前一位加
案例二: 删除数组的方法 pop(),shift()
arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr.pop(); // --> 剪切数组的最后一位,没有参数
arr.shift(); // --> 剪切数组的第一位,没有参数
案例三:数组倒叙 reverse
arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr.reverse();
console.log(arr); //---> [8, 7, 6, 5, 4, 3, 2, 1]
案例四:arr.splice(开始剪切的位置,剪切的个数,剪切位置需要添加的新数据)
arr = [1, 2, 3, 4, 5, 6, 7, 8]
arr.splice(2,3,'a','b','c')
console.log(arr) // ---> [1, 2, "a", "b", "c", 6, 7, 8]
案例五:sort()方法,
// 数组排序方法 sort
var arr = [856, 72, 83, 73, 43, 93, 742]
arr.sort();
//--> [43, 72, 73, 742, 83, 856, 93]
// 默认是按照 ASCⅡ 码排序 按从小到大的顺序
//字符串 ASCII码比较大小,先比较第一位,接着比较第二位,以此类推
//在ASCIl码表中,按照ASCIl码值从小到大排列顺序是数字、英文大写字母、英文小写字母。数字ASCIl码值比字母小
ASCII码对照表: http://tool.oschina.net/commons?type=4
var arr = [-5,-6,1,43,3,6];
// ---> 参数是a,b
// ---> 返回值是负数 a排在前面
// ---> 返回值是正数 a排在后面
// ---> 返回值是0,保持不变
// arr.sort(function(a,b){
// if( a > b){
// return 1
// }else{
// return -1
// }
// })
arr.sort(function(a,b){
return a-b
}) 升序排列
console.log(arr) // ---> -6 -5 1 3 6 43
随机排序
// 随机排序
//-------------------------------------------------------
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
// Math.random() 返回(0,1)之间的随机数
arr.sort(function(a,b){
var rand = Math.random();
if(rand-0.5>0){
return 1
}else{
return -1
}
})
console.log(arr) ;
案例六: arr.contact( )方法;
//arr.concat 将两个数组进行合并
//----------------------------------------------------------------------------
var arr = [1,2,3,4,5,6,7];
var arr2 = [8,9,10];
var arr3 = arr.concat(arr2);
console.log(arr3);
案例七: arr.toString()
//arr.toString() 将数组转化为字符串
//----------------------------------------------------------------------------
var arr = [1,2,3,4,5,6,7];
arr.toString();
console.log(arr);
案例八:arr.slice( ):
//arr.slice() 截取数组中的片段,并且需要用一个变量来接收
//传入一个参数,就会从对应的地方一直截取到最后
//传入两个参数则会截取下前面的元素,到后面的元素,但是不包含后面的元素
//----------------------------------------------------------------------------
var arr = [1,2,3,4,5,6,7];
var arr2 = arr.slice(1,3);
console.log(arr2);
案例九: arr.join( ):
//arr.join() 将数组的元素放入字符串,参数就是分隔符
//----------------------------------------------------------------------------
var arr = ['a','b','c','d'];
var arr2 = arr.join('___')
console.log(arr2); //--> a___b___c___d
案例十:split( );
//arr.split() 将字符串变成数组
//不传值,直接将整个字符串填到数组中,
//传空字符串,将字符串每一位分成一个元素,填入数组
//传入字符串中存在的,则会以这个为分割符号,将其断开填入数组
//传入不相关的,则跟不传值一样
//可以填入第二个参数,代表填入的长度
//----------------------------------------------------------------------------
var str = 'wo-ai-xiao-geng';
var str2 = str.split();
var str3 = str.split('');
var str4 = str.split('-');
console.log(str2); // --> ["wo-ai-xiao-geng"]
console.log(str3); // --> ["w", "o", "-", "a", "i", "-", "x", "i", "a", "o", "-", "g", "e", "n", "g"]
console.log(str4); // --> ["wo", "ai", "xiao", "geng"]
3、类数组是类似于数组的特殊对象
具有数组的属性,又有对象的属性(狭义的对象和数组),有length属性,没有Array的方法