js数组方法应用场景汇总

数组的创建

  1. var arrayObj = new Array();
    创建一个数组
  2. var arrayObj = new Array([size]);
    const arr = Array(100)
    创建一个数组并指定长度,注意不是上限,是长度
  3. var arr = [1,2,4] === var arr =new Array(1,2,4) === var arr = Array(1, 2, 4)
    创建一个数组并赋值
    实际上情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的

数组的元素的访问

  1. 获取数组的元素值
    var testGetArrValue = arrayObj[1];
  2. 给数组元素赋予新的值
    arrayObj[1]= “这是新值”;

数组元素的添加

  1. 将一个或多个新元素添加到数组结尾,并返回数组新长度
    array. push(item)
  2. 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
    arrayObj.unshift(item);
  3. 将一个或多个新元素插入数组指定位置, 并向数组添加新元素,深拷贝返回空数组。
    arrayObj.splice(insertPosition, 0, item);

数组元素的删除 (调用方法后数组形式返回所移除的元素, 原数组移除元素)

  1. 移除最后一个元素并返回该元素值
    arrayObj.pop();
  2. 移除最前一个元素并返回该元素值,数组中元素自动前移
    arrayObj.shift();
  3. 删除从指定位置deletePos开始的指定数量deleteCount的元素arrayObj.splice(deletePos,deleteCount);
    例子:
const arr1 = Array(22, 2, 4);
console.log(arr1.splice(0, 1), arr1);              //  [22]    [2, 4]

数组的截取和合并

  1. 数组的形式返回数组的一部分, 深拷贝
    arrayObj.slice(start, [end]); 不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
  2. 将多个数组(或字符串,或数组和字符串的混合)合并,并返回新数组
    arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);
  3. 以value为分隔将字符串切割为对应部分,返回数组
    String.split(“value”)
  4. 用于把数组中的所有元素放入一个字符串,以value分隔的字符串
    Array.join(“value”)
  5. 指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
    arr.flat([depth])
    例子:
const arr = [1, [2], [[22, 33]]];
const a = arr.flat(2);
console.log(a, arr);     [1,2,22,33]            [1, [2], [[22, 33]]];

注: flat() 方法会移除数组中的空项

数组的拷贝

  1. 返回数组的拷贝数组,注意是一个新的数组,不是指向(深拷贝)
    arrayObj.slice(0);
    arrayObj.concat();
  2. 数组元素的排序
    反转元素(最前的排到最后、最后的排到最前),返回数组地址,浅拷贝
    arrayObj.reverse();
    对数组元素排序,返回数组地址, 浅拷贝
    arrayObj.sort();

数组元素的字符串化

  1. 返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
    arrayObj.join(separator);
  2. 可以看作是join的特殊用法,不常用
    toLocaleString 、toString 、valueOf

查询元素有没有在数组中

  1. includes 返回ture/false,
    array1.includes(1)、
  2. indexOf返回元素位置/-1
    array1.indexOf(0)

数组累加

  1. 对数组中的元素执行reducer函数(升序执行),将其结果汇总为单个返回值
    arr.reduce(function(pre, cur, index, array))
    例子:
const arr = [1, 2, 3];
const a = arr.reduce((pre, cur) => pre + cur, 2);
console.log(a, arr);

随机返回数组中数据

  1. 返回小于或等于其数字参数的最大整数
    Math.floor()
  2. 返回0到1之间的伪随机数
    Math.random()
    例子:
const arr = ['3070532', '3073185'];
console.log(arr[Math.floor((Math.random() * arr.length))]);

数组的3个属性(length、prototype、constructor)

  1. Length
    length属性表示数组的长度,即其中元素的个数。因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1, js数组的length属性是可变的
  2. Prototype
    使您有能力向对象添加属性和方法。返回对象类型原型的引用。prototype 属性是 object 共有的,用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。
    例子:
function arrayMax() {
  let max = 0;
  for (let i = 0; i < this.length; i++) {
    if (max < this[i]) {
        max = this[i];
     }
  }
  return max;
}
Array.prototype.max = arrayMax;
console.log([1, 2, 3, 44, 11, 2211, 555].max());
  1. constructor 属性
    表示创建对象的函数,object.constructor // object是对象或函数的名称。
    返回对创建此对象的数组函数的引用
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值