JS基础之数组篇

创建数组

1
2
3
4
// 第一种: 可以直接通过 [] 来创建一个数组,这里可以是一个空数组,也可以默认给一些值
var arr = []; arr1 = [1, 2, 3, 4];
// 第二种: 也可以通过new关键字来创建
var arr = new Array(); arr 1 = new Array(1, 2, 3, 4);

虽然有以上两种方式,但还是推荐第一种。
首先,第一种比第二种简洁,其次可读性和执行速度第一种都要优于第二种

  • 数组是对象,在javascript中使用 typeof 运算符会返回 "object"。

那么怎么去判断一个数组是数组?

1
2
3
4
5
6
7
8
9
10
11
// 第一种   但不支持老版本浏览器
Array.isArray(arr)

// 第二种 兼容写法,自己创建isArray() 函数来解决
function isArray(arr){
return arr.constructor.toString().indexOf('Array') > -1;
}

// 第三种 假如对象由给定的构造器创建,则 instanceof 运算符返回 true:
var arr = [1, 2, 3];
arr instanceof Array // 返回 true

数组的方法

  1. push() ==> 在数组末尾添加元素

  2. pop() ==> 在数组末尾删除元素

  3. shift() ==> 在数组前面删除元素

  4. unshift() ==> 在数组前面添加元素

  5. toString() ==> 把数组转换为数组值(逗号分隔)的字符串。

    1
    2
    var arr = ['a', 'b', 'c', 'd'];
    arr.toString(); // a,b,c,d
  6. join() ==> 数组转换字符串

    1
    2
    var arr = ['a', 'b', 'c', 'd'];
    arr.join('-'); // a-b-c-d
  7. delete ==> 删除某个元素

    1
    delete arr[1]           // 会把对应元素替换成undefined
  8. sort() ==> 数组排序

    1
    2
    var arr = [e, d, a, c];
    arr.sort() // [a, c, d, e]

注意,如果是对数字进行排序,超过10以上的数字排序,会出现问题

1
2
3
4
var arr = [12, 7, 34, 4, 54]
arr.sort() // [12, 34, 4, 54, 7]
arr.sort(function (a, b){return a -b}) // [4, 7, 12, 34, 54]
arr.sort(function (a, b){return b -a}) // 从大到小
  1. reverse() // 翻转数组 arr.reverse()
  1. Math.max() Math.min() 找出数组中最大最小值

    1
    2
    Math.max.apply(null, arr);
    Math.min.apply(null, arr);
  2. forEach() ==> 遍历数组,但中间不能执行break跳出循环或终止循环

  3. map() ==> 遍历数组,可以执行跳出或终止循环,但如果里面是判断语句,返回的值为true和false组成的数组

  4. filter() ==> 遍历数组,判断返回符合条件的值组成新数组

  5. every() ==> 遍历数组,当所有值都满足条件,返回true,否则为false

  6. some() ==> 遍历数组,当有一个值满足条件,就返回true,反之false

  7. reduce() ==> 处理数组值累加、阶乘等,速度更快,性能更好

  8. reduceRight() ==> 同上,不过是从右往左累加

  9. indexOf() ==> 在数组中搜索元素值并返回其位置。 没有返回 -1

  10. lastIndexOf() ==> 在数组中从末尾开始搜索元素值并返回其位置。没有返回 -1

  11. find() ==> 返回通过测试函数的第一个数组元素的值。

  12. findIndex() ==> 返回通过测试函数的第一个数组元素的索引。

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2017-2020 Mr·Huang

请我喝杯咖啡吧~

支付宝
微信