• Javascript 之 Array


    let arr = ['a', 'b', 'c', 'd', 'e'];
    // 截取数组
    slice(start, end)  // 从 start 位置开始截取到 end 位置(左闭右开取间),如果 start/end 为负值,则表示从数组的尾部开始, -1 代表最后一个元素
      console.log(arr.slice(2, 4));  // ['c', 'd']

    // 数组转为字符串
    join(separator)  // 用 separator 字符链接数组元素,并转为字符串,如果 separator 分割字符没有,默认是英文的逗号(,)
      console.log(arr.join());  // a,b,c,d,e
      console.log(arr.join('+'));  // a+b+c+d+e

    // 截取数组片段
    splice(start, deleteCount, value, ...)
      console.log(arr.splice(1, 2));  // ['b', 'c']  arr 为 ['a', 'd', 'e']  截取数组片段,从 start 开始,截取 2 个元素
      console.l0g(arr.splice(1, 0, 'f'));  // [] 空数组  arr 为 ['a', 'f', 'b', 'c', 'd', 'e']  如果 deleteCount 为零则表示添加
      console.log(arr.splice(1));  // ['b', 'c', 'd', 'e']  从 start 开始,一直截取到最后

    // 颠倒数组元素的顺序
    reverse()
      console.log(arr.reverse());  // ['e', 'd', 'c', 'b', 'a']

    // 数组元素的添加
    concat(value, ...)  // 往数组添加新的元素
      console.log(arr.concat('f', 'g'));  // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
      console.log(arr.concat(['f', 'g']));  // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
      console.log(arr.concat('f', ['g', ['o', 'p']]));  // ['a', 'b', 'c', 'd', 'e', 'f', 'g', ['o', 'p']]

    push(value, ...)  // 在数组尾部添加一个或多个元素
      console.log(arr.push('f', 'g'));  // 返回数组的新长度, arr 为 ['a', 'b', 'c', 'd', 'e', 'f', 'g']

    unshift(value, ...)  // 在数组的头部添加一个或多个元素
      console.log(arr.unshift('x', 'y'));   // 返回数组的新长度, arr 为 ['x', 'y', 'a', 'b', 'c', 'd', 'e']

    // 数组元素的删除
    pop()  // 移除并返回数组的最后一个元素
      console.log(arr.pop());  // 'e'  arr 为 ['a', 'b', 'c', 'd']

    shift()  // 移除并返回数组的第一个元素
      console.log(arr.shift());  // 'a'  arr 为 ['b', 'c', 'd', 'e']

    // 在数组中查找元素
    indexOf(value, start)  // 在数组中查找 value 元素, start 为从什么位置开始找,是可选参数。如未找到返回 -1
      console.log(arr.indexOf('c'));  // 2
      console.log(arr.indexOf('d', 2));  // 3

    lastIndexOf(value, start)  // 从后往前查找元素,从 start 位置开始(start 也是从后面开始计算位置),如果 start 没有,就是从最后开始,如未找到返回 -1
      console.log(arr.lastIndexOf('c'));  // 2
      console.log(arr.lastIndexOf('d', 2));  // 3

    toLocaleString()  // 将数组转化为本地化字符串
    toString()  // 将数组转化为字符串

    forEach()  遍历所有元素

    var arr = [1, 2, 3];
    arr.forEach(function (item, index) {
      // 遍历数组的所有元素,item 表示元素的值, index 表示元素的位置
      console.log(index, item);    
    })
    // 0 1
    // 1 2
    // 2 3

    编写一个通用的 forEach 函数,即可遍历数组,也可遍历对象
    var arr = ['a', 'b', 'c'];
    var obj = {x: 100, y: 200, z: 300};
    forEach(arr, function (index, item) {
      console.log(index, item);
    });
    forEach(obj, function (key, val) {
      console.log(key, val);
    })
    function forEach (obj, fn) {
      var key;
      if (obj instanceof Array) {
        obj.forEach(function (item, index) {
          fn(index, item);
        })
      } else {
        for (key in obj) {
          if(obj.hasOwnProperty(key)) {
            fn(key, obj[key]);
          }
        }
      }
    }

    every  判断所有元素是否都符合条件

    var arr = [1, 2 ,3];
    var result = arr.every(function (item, index) {
      // 用来判断所有的数组元素,都 满足一个条件
      if (item < 4) {
        return true
      }
    })
    console.log(result);  // true

    some  判断是否有至少一个元素符合条件

    var arr = [1, 2, 3];
    var result = arr.some(function (item, index) {
      // 用来判断所有的数组元素,只要有一个满足条件即可
      if (item <2) {
        return true;
      }
    })
    console.log(result);  // true

    sort  数组排序

    var arr = [1, 4, 5, 3, 2];
    var arr2 = arr.sort(function (a, b) {
      // 从小到大排序
      return a - b;
      // 从大到小排序
      //return b - a;
    })
    console.log(arr2);  // [1, 2, 3, 4, 5]

    map  对元素重新组装,生成新的数组

    var arr = [1, 2, 3];
    var arr2 = arr.map(function (item, index) {
      // 将数组重新组装
      return '<b>' + item + '</b>';
    })
    console.log(arr2);  // ['<b>1</b>', '<b>2</b>', <b>3</b>]

    filter  过滤数组内符合条件的元素

    var arr = [1, 2, 3];
    var arr2 = arr.filter(function (item, index) {
      // 通过某一个条件过滤数组
      if (item >= 2) {
        return true; 
      }
    })
    console.log(arr2);  // [2, 3]

    reduce(fn, inital)  从左到右的方式从数组元素中计算出一个值

    var arr = [1, 2, 3];
    var arr2 = arr.reduce(function (x, y) {
      return x * y;
    })
    console.log(arr2);  // (1*2)*3 = 6

    var arr3 = arr.reduce(function (x, y) {
      return x * y;
    }, 4)  // 如果 inital 有值,那它的行为会像是把该参数插入到 arr 的头部一样 arr = [4, 1, 2, 3]
    console.log(arr3);  // ((4*1)*2)*3 = 24

    reduceRight(fn, inital)  从右到左的方式从数组元素中计算出一个值

    var arr = [1, 2, 3];
    var arr2 = arr.reduceRight(function (x, y) {
      return x * y;
    })
    console.log(arr2);  // (3*2)*1 = 6

    var arr3 = arr.reduceRight(function (x, y) {
      return x * y;
    }, 4)  // 如果 inital 有值,那它的行为会像是把该参数插入到 arr 的尾部一样, arr = [1, 2, 3, 4]
    console.log(arr3);  // ((4*3)*2)*1 = 24
  • 相关阅读:
    Params参数的应用
    用反射动态创建委托
    Javascript中的Array的运用
    四个JS代码与jquery架构简单运用
    base 基本用法转载自(MSDN)
    Microsoft AJAX Library 新特性简单代码
    典型的委托的不同写法(转载)
    创建反射实例|反射过滤|反射搜索
    【软工】第1次个人作业
    【软工】第0次个人作业
  • 原文地址:https://www.cnblogs.com/joffe/p/7674468.html
Copyright © 2020-2023  润新知