数组(Array)对象

创建数组的两种方式

1.利用字面量创建

2.利用new 关键字 创建 var arr = new Array;

 // 创建数组的两种方式

​     // 1.利用数组字面创建:

​     var arr = [1,2,3];

​     // 2.利用new Array() 

​     var arr1 = new Array(2); /* 只给一个数值,是说明里面的数组长度(length)为2 里面存了两        个空的数组元素 */

​     console.log(arr1);

​     var arr2 = new Array(2,3); /* 给一个以上的数值,是说 里面的数组元素为[2,3] 等价于 var         arr1 = [2,3];  */

​     console.log(arr2);

检测是否为数组的两种方式

  1. instanceof 运算符
  2. Array.isArray() 这是一个方法
    // 检查是否为数组的两种方式
    // 1. instanceof 运算符

​     var arr = [];

​     var obj = new Object();

​     console.log(arr instanceof Array); // 如果是数组就返回 true 否则返回 false

​     console.log(obj instanceof Array);

​     // 2. Array.isArray() 这是一个方法 H5新增的 i9以上才支持

​     var obj = {};

​     console.log(Array.isArray(obj));

​     var arr1 = [];

​     console.log(Array.isArray(arr1));

添加数组元素的方法

1.push()方法push() 可以在我们数组的末尾 添加一个或多个数组元素

// 1.push() 可以在我们数组的末尾 添加一个或多个数组元素

​     var arr = [1,2,3];

​     arr.push(10); // 末尾添加一个数组元素

​     console.log(arr); 

​     console.log(arr.push(10)); 

-----------------------------------------------------

​     arr.push('4','pink','Day','Minute'); // 末尾添加多个数组元素

​     console.log(arr); 


-----------------------------------------------------
​     var arr1 = [10,20,30];

​     console.log(arr1.push(40,50,60,70)); /* arr.push(40,50,60,70) 返回的是添加元素后新数组的长度 */



​    

(1) push 是可以给数组追加新的元素

(2) push() 参数直接写数组元素就可以了

(3) push完毕之后,返回的结果是 新数组的长度

(4) 原数组也会发生变化

2.unshift()方法unshift() 在我们数组的开头 添加一个或者多个数组元素 使用方法跟push()一模一样 不同的是 push( )是在末尾添加一个或多个数组元素 ,而unshift()是在开头添加一个或多个数组元素。

/* 2. unshift() 在我们数组的开头 添加一个或者多个数组元素 使用方法跟push()一模一样 不同的是    push( )是在末尾添加一个或多个数组元素 ,而unshift()是在开头添加一个或多个数组元素。 */



​     var arr = [1,2,3];

​     console.log(arr.unshift('pink','green'));

​     console.log(arr);

删除数组元素的方法

1.pop() 它可以删除最后一个数组元素,一次只能删除一个元素

var arr = [1,2,3];

​     arr.pop(); // 里面不跟参数 ,一次只删除一个元素

​     console.log(arr);
----------------------------------------
​     var arr1 = [1,2,3];

​     console.log(arr1.pop()); // pop返回的结果是删除的那个元素, 就是删谁就返回谁 这里返回3

​     console.log(arr1);

(1) pop是可以删除数组的最后一个元素 记住一次只能删除一个元素

(2) pop() 没有参数

(3) pop完毕之后,返回的结果 删除的那个元素

(4) 原数组也会发生变化

2.shift() 可以删除数组的开头第一个元素 ,一次只能删除一个数组元素 使用方法跟 pop() 一模一样 不同的是pop() 是删除最后一个数组元素 ,而shift() 是删除数组的第一个元素 ,一次只能删除一个 */

var arr = [1,2,3];

​     arr.shift();

​     console.log(arr);

-------------------------

​     var arr1 = [1,2,3];

​     console.log(arr1.shift()); // shift() 返回的是被删除的那个数组元素

​     console.log(arr1);

(1) shift 是可以删除数组的第一个元素 记住一次只能删除一个元素

(2) shift() 没有参数

(3) shift完毕之后,返回的结果是 删除的那个元素

(4) 原数组也会发生变化

添加和删除数组元素的小结

方法名说明返回值
push(参数1....)末尾添加一个或多个元素,注意修改原数组并返回新的数组长度
pop()删除数组最后一个元素,把数组长度减1,无参数,修改原数组返回它删除的元素的值
unshift(参数1...)向数组的开头添加一个或更多元素,注意修改原数组并返回新的数组长度
shift()删除数组的第一个元素,数组长度减1,无参数,修改原数组并返回第一个元素的值

数组排序翻转数组(reverse()方法) 使用方法:

方法名说明是否修改原数组
reverse()颠倒数组中元素的顺序,无参数该方法会改变原来的数组 返回新数组
sort()对数组的元素进行排序该方法会改变原来的数组 返回新数组
var arr = [2,4,7,6,8,22,44];

​     arr.reverse();

​     console.log(arr);

数组排序(冒泡排序)(sort()方法) 使用方法:

var arr = [2,4,7,6,8,22,44];

​     arr.reverse();

​     console.log(arr);



​     //数组排序(冒泡排序)(sort()方法) 使用方法:

​     var air = [1,3,6,7,9,];

​     air.sort()

​     console.log(air); // 各位数没有问题,如果出现两位数的数字的就会出现毛病,如下:



​     var air = [1,3,6,7,9,11];

​     air.sort()

​     console.log(air); // 结果是:[1, 11, 3, 6, 7, 9]; 它是比较个位数的方法比较解决方法是在里面写一个函数,里面的写法比较固定,如下:

​     

​     arr1 = [14,35,46,22,66,4];

​     arr1.sort(function(a,b) {

​      return b - a ; // 如果要升序返回值就写 a - b ,倒序就写 b - a , 写法比较固定,我这里是倒序。

​     });

​     console.log(arr1);

获取数组元素索引

数组索引方法:

方法名说明返回值
indexOf()数组中查找给定元素的第一个索引如果存在就返回索引号, 如果不存在则返回-1
lastIndexOf()在数组中的最后一个的索引如果存在就返回索引号, 如果不存在则返回-1

// 返回数组元素索引号方法:

    // 1. indexOf(数组元素) 作用就是返回该数组元素的索引号 从前面开始查找 如果没有找到就返回 -1

​     var arr = ['Chinese','pink','green','date','day'];

​     console.log(arr.indexOf('date')); 

​     console.log(arr);

​     console.log(arr.indexOf('tc')); // 该数组元素不存在 没有查到 ,返回 -1



​    // 如果一个数组里面有相同的数组元素,它只返回从前面第一个满足条件的索引号,如:

​    var arr = ['Year','Month','Day','Hour','Day','Minute','Second']

​    console.log(arr.indexOf('Day')); // 里面有两个'Day'元素 , 它返回的是从前面开始的第一个 。不会返回 2 4。

​    

​    // 2. lastIndexOf(数组元素) 作用跟 indexOf() 一样 ,不同的是lastIndexOf() 是从后面开始查 如果没有找到就返回-1

​    var arr1 = ['red','orange','blue','yello','green'];

​    arr1.lastIndexOf('yello'); // 3

​    console.log(arr1.lastIndexOf('yello'));

​    console.log(arr1.lastIndexOf('hecker')); // 该数组元素不存在 没有查到 ,返回 -1

数组转换为字符串

方法名说明返回值
toString()把数组转换成字符串,逗号分隔每一项返回一个字符串
join('分隔符')方法用于把数组中的所有元素转换为一个字符串(可以选择用什么分隔)返回一个字符串
// 1.toString()方法
            var arr = [1,2,3];
            console.log(arr.toString()); //转换为字符串'1','2','3' 用逗号分隔
// 2.join('分隔符')方法
            var arr1 = [3,4,5];
            console.log(arr1.join('-'));//用 - 分隔:3 - 4 - 5
            console.log(arr1.join('/')); // 用/ 分隔 :3/4/5