数组

  1. 数组(Array
  2. - 数组也是一个对象
  3. - 它和我们普通对象功能类似,也是用来存储一些值的
  4. - 不同的是普通对象是使用字符串作为属性名的,
  5. 而数组时使用数字来作为索引操作元素
  6. - 索引:
  7. 0开始的整数就是索引
  8. - 数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据
  9. 创建数组对象
  10. "var arr = new Array();"
  11. var arr1 = [1,2,3,4,5,10];
  12. var arr2 = new Array(10,20,30);
  13. 数组[索引] =
  14. arr[0] = 10;
  15. 创建一个长度为10的数组
  16. arr2 = new Array(10);
  17. 数组中的元素可以是任意的数据类型
  18. arr = ["hello",1,true,null,undefined];
  19. 也可以是对象
  20. var obj = {name:"孙悟空"};
  21. arr[arr.length] = obj;
  22. arr = [{name:"孙悟空"},{name:"沙和尚"},{name:"猪八戒"}];
  23. 也可以是一个函数
  24. arr = [function(){alert(1)},function(){alert(2)}];
  25. 数组中也可以放数组,如下这种数组我们称为二维数组
  26. arr = [[1,2,3],[3,4,5],[5,6,7]];
  27. console.log(arr[1]);

数组


1.push 添加

  1. 1.该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度
  2. 2.可以将要添加的元素作为方法的参数传递,
  3. 这样这些元素将会自动添加到数组的末尾
  4. 3.该方法会将数组新的长度作为返回值返回
  5. 创建一个数组
  6. var arr = ["孙悟空","猪八戒","沙和尚"];
  7. var result = arr.push("唐僧","蜘蛛精","白骨精","玉兔精");
  8. console.log(arr);
  9. console.log("result = "+result);
  10. 输出结果
  11. "孙悟空,猪八戒,沙和尚,唐僧,蜘蛛精,白骨精,玉兔精"
  12. "result = 7"

2.pop 删除

  1. 该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
  2. 创建一个数组
  3. var arr = ["孙悟空","猪八戒","沙和尚"];
  4. result = arr.pop();
  5. console.log(arr);
  6. console.log("result = "+result);
  7. 输出结果
  8. "孙悟空,猪八戒"
  9. "result = 沙和尚"

3.unshift 添加

  1. 1.向数组开头添加一个或多个元素,并返回新的数组长度
  2. 2.向前边插入元素以后,其他的元素索引会依次调整
  3. 创建一个数组
  4. var arr = ["孙悟空","猪八戒","沙和尚"];
  5. arr.unshift("牛魔王","二郎神");
  6. 输出结果
  7. "牛魔王,二郎神,孙悟空,猪八戒,沙和尚"

4.shift 删除

  1. 可以删除数组的第一个元素,并将被删除的元素作为返回值返回
  2. 创建一个数组
  3. var arr = ["孙悟空","猪八戒","沙和尚"];
  4. result = arr.shift();
  5. console.log(arr);
  6. console.log("result = "+result);
  7. 输出结果
  8. "猪八戒,沙和尚"
  9. "result = 孙悟空"

5.forEach 遍历数组

  1. 这个方法只支持IE8以上的浏览器
  2. IE8及以下的浏览器均不支持该方法,所以如果需要兼容IE8,则不要使用forEach
  3. 还是使用for循环来遍历
  4. forEach()方法需要一个函数作为参数
  5. 1.像这种函数,由我们创建但是不由我们调用的,我们称为回调函数
  6. 2.数组中有几个元素函数就会执行几次,每次执行时,浏览器会将遍历到的元素
  7. 以实参的形式传递进来,我们可以来定义形参,来读取这些内容
  8. 3.浏览器会在回调函数中传递三个参数:
  9. 第一个参数,就是当前正在遍历的元素
  10. 第二个参数,就是当前正在遍历的元素的索引
  11. 第三个参数,就是正在遍历的数组
  12. 创建一个数组
  13. var arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];
  14. arr.forEach(function(value , index , obj){
  15. console.log(value);
  16. });
  17. 输出结果
  18. "孙悟空"
  19. "猪八戒"
  20. "沙和尚"
  21. "唐僧"
  22. "白骨精"

6.slice

  1. 可以用来从数组提取指定元素
  2. 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回
  3. 参数
  4. 1.截取开始的位置的索引,"包含开始索引"
  5. 2.截取结束的位置的索引,"不包含结束索引"
  6. 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
  7. 索引可以传递一个负值,如果传递一个负值,则从后往前计算
  8. -1 倒数第一个
  9. -2 倒数第二个就是正在遍历的数组
  10. 创建一个数组
  11. var arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];
  12. var result = arr.slice(1,4);
  13. console.log(result);
  14. 输出结果
  15. "猪八戒,沙和尚,唐僧"

7.splice 删除

  1. 1. 可以用于删除数组中的指定元素
  2. 2. 使用splice()会影响到原数组,会将指定元素从原数组中删除
  3. 并将被删除的元素作为返回值返回
  4. 3. 参数:
  5. 第一个,表示开始位置的索引
  6. 第二个,表示删除的数量
  7. 第三个及以后。。
  8. 可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边
  9. 创建一个数组
  10. var arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];
  11. var result = arr.splice(3,0,"牛魔王","铁扇公主","红孩儿");
  12. console.log(arr);
  13. console.log(result);
  14. 输出结果
  15. "孙悟空,猪八戒,沙和尚,牛魔王,铁扇公主,红孩儿,唐僧,白骨精"
  16. ""

8.concat 拼接数组

  1. 可以连接两个或多个数组,并将新的数组返回
  2. 该方法不会对原数组产生影响
  3. 创建一个数组
  4. var arr = ["孙悟空","猪八戒","沙和尚"];
  5. var arr2 = ["白骨精","玉兔精","蜘蛛精"];
  6. var arr3 = ["二郎神","太上老君","玉皇大帝"];
  7. var result = arr.concat(arr2,arr3,"牛魔王","铁扇公主");
  8. console.log(result);
  9. 输出结果
  10. "孙悟空,猪八戒,沙和尚,白骨精,玉兔精,蜘蛛精,二郎神,太上老君,玉皇大帝,牛魔王,铁扇公主"

9.join 数组转换字符串

  1. 该方法可以将数组转换为一个字符串
  2. 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
  3. join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符
  4. 如果不指定连接符,则默认使用,作为连接符
  5. 创建一个数组
  6. var arr = ["孙悟空","猪八戒","沙和尚","唐僧"];
  7. result = arr.join("@-@");
  8. console.log(result);
  9. 输出结果
  10. "孙悟空@-@猪八戒@-@沙和尚@-@唐僧"

10.reverse 反转数组

  1. 该方法用来反转数组(前边的去后边,后边的去前边)
  2. 该方法会直接修改原数组
  3. 创建一个数组
  4. var arr = ["孙悟空","猪八戒","沙和尚","唐僧"];
  5. arr.reverse();
  6. console.log(arr);
  7. 输出结果
  8. "唐僧,沙和尚,猪八戒,孙悟空"

11.sort 排序

  1. 可以用来对数组中的元素进行排序
  2. 也会影响原数组,默认会按照Unicode编码进行排序
  3. 创建一个数组
  4. var arr = ["b","d","e","a","c"];
  5. arr.sort();
  6. console.log(arr);
  7. 输出结果
  8. "a,b,c,d,e"

同上sort

  1. 可以用来对数组中的元素进行排序
  2. 也会影响原数组,默认会按照Unicode编码进行排序
  3. 创建一个数组
  4. var arr = ["b","d","e","a","c"];
  5. arr.sort();
  6. console.log(arr);
  7. 输出结果
  8. "a,b,c,d,e"
  1. 即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码来排序,
  2. 所以对数字进排序时,可能会得到错误的结果。
  3. 我们可以自己来指定排序的规则
  4. 我们可以在sort()添加一个回调函数,来指定排序规则,
  5. 回调函数中需要定义两个形参,
  6. 浏览器将会分别使用数组中的元素作为实参去调用回调函数
  7. 使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边
  8. 浏览器会根据回调函数的返回值来决定元素的顺序,
  9. 如果返回一个大于0的值,则元素会交换位置
  10. 如果返回一个小于0的值,则元素位置不变
  11. 如果返回一个0,则认为两个元素相等,也不交换位置
  12. 如果需要升序排列,则返回 a-b
  13. 如果需要降序排列,则返回b-a
  14. demo
  15. var arr = [5,4,2,1,3,6,8,7];
  16. arr.sort(function(a,b){
  17. //升序排列
  18. //return a - b;
  19. //降序排列
  20. return b - a;
  21. });
  22. console.log(arr);
  23. 输出结果
  24. //"1,2,3,4,5,6,7,8"
  25. "8,7,6,5,4,3,2,1"