JS中数组常见的操作方法

   js中常见的数据类型

    // 基础类型:
    String // 字符串
    Number // 数字
    Boolean // 布尔值
    Null // 空对象
    Undefined // 末定义
    Symbol //new in ES 6

    // 引用类型:
    Object // 对象
    Array // 数组
    Function // 函数
    
    基本类型保存的是值,引用类型保存的是对象的地址,所有基本类型赋值是按值传递(拷贝赋值),
    引用类型赋值是按引用传递。

 运算符 判断数据类型的方法

    // typeof 返回变量或表达式的类型  注意此方法只能判断简单的数据类型
    console.log(typeof '123') // string
    console.log(typeof 123) // number
    console.log(typeof true) // boolean
    console.log(typeof null) // object
    console.log(typeof undefined) // undefined
    console.log(typeof {}) // object
    console.log(typeof []) // object
    console.log(typeof Function) // function
    // instanceof 除了能判断简单的数据类型外, 还可以用来判断一个对象是否另一个对象的实例
    [] instanceof Array; // true
    {} instanceof Object;// true
    new Date() instanceof Date;// true
    function Person(){};
    new Person() instanceof Person;
    
    [] instanceof Object; // true
    new Date() instanceof Object;// true
    new Person instanceof Object;// true
    // 从 instanceof 能够判断出 [ ].__proto__ 指向 Array.prototype,而 Array.prototype.__proto__ 又指向了Object.prototype,最终
    // Object.prototype.__proto__ 指向了null,标志着原型链的结束。因此,[]、Array、Object 就在内部形成了一条原型链:

常用的数组方法

    // 增加元素
    // array.push() 向数组的末尾添加一个或多个元素,并返回新的长度
    // array.unshift() 向数组的开头添加一个或多个元素,并返回新的长度
    const arr = [1, 2, 3, 4, 5]
    console.log(arr.push(6, 7)) // 7
    console.log(arr) // [1, 2, 3, 4, 5, 6, 7]

    const arr = [1, 2, 3, 4, 5]
    console.log(arr.unshift(6, 7)) // 7
    console.log(arr) // [6, 7, 1, 2, 3, 4, 5]

    // 删除元素
    // array.pop() 删除并返回数组的最后一个元素
    // array.shift() 删除并返回数组的第一个元素
    const arr = [1, 2, 3, 4, 5]
    console.log(arr.pop()) // 5
    console.log(arr) // [ 1, 2, 3, 4]

    const arr = [1, 2, 3, 4, 5]
    console.log(arr.shift()) // 1
    console.log(arr) // [  2, 3, 4, 5]

    // 删除元素并向数组添加新元素
    // array.splice(index, n) 从数组的index位置开始删除n个元素, 并返回被删除的元素的数组
    // array.splice(index, n, newarray) 从数组的index位置开始删除n个元素然后再增加新的元素, 并返回新的数组
    const arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(1, 1)) // [2]
    console.log(arr) // [1, 3, 4, 5]

    const arr = [1, 2, 3, 4, 5]
    console.log(arr.splice(1, 2, 6)) // [2, 3]
    console.log(arr) // [1, 6, 4, 5]

    // 截取与合并
    // array.slice(start,end) 从已有的数组中返回选中的元素, 包左不包右
    // array.concat(element1,element2,array) 连接两个或多个数组,并返回新的数组
    // 注:该方法并不会改变现有的数组,而仅仅会返回被连接数组的一个副本
    const arr = [1, 2, 3, 4, 5]
    console.log(arr.slice(1, 3)) // [2, 3]
    console.log(arr) // [1, 2, 3, 4, 5]

    const arr = [1, 2, 3, 4, 5]
    console.log(arr.concat(6, 7, [8, 9])) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
    console.log(arr) // [1, 2, 3, 4, 5]

    // array.join(separator) 把数组中的所有元素放入一个字符串, 元素通过指定的分隔符进行分隔(默认是逗号分隔符),返回一个字符串
    // string.split(separator,n) 把一个字符串分割成字符串数组, n代表指定返回的数组的最大长度
    const arr = [1, 2, 3, 4, 5]
    console.log(arr.join()) // string 1,2,3,4,5
    console.log(arr) // [1, 2, 3, 4, 5]

    const str = '1234564897'
    console.log(str.split('',5)) // ["1", "2", "3", "4", "5"]
    console.log(str) // 1234564897

    // array.reverse() 颠倒数组中元素的顺序
    // array.sort() 对数组中的元素进行排序, 注意:数组在原数组进行排序,不生成副本
    const arr = [1, 2, 3, 4, 5]
    console.log(arr.reverse()) // [5, 4, 3, 2, 1]
    console.log(arr) // [5, 4, 3, 2, 1]

    const arr = [1, 9, 3, 8, 5]
    console.log(arr.sort()) // [1, 3, 5, 8, 9]
    console.log(arr) // [1, 3, 5, 8, 9]

是否改变原数组整理

改变原数组的:

shift:将第一个元素删除并且返回删除元素,空即为undefined
unshift:向数组开头添加元素,并返回新的长度
pop:删除最后一个并返回删除的元素
push:向数组末尾添加元素,并返回新的长度
reverse:颠倒数组顺序
sort:对数组排序
splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回

不改变原数组的:

concat:连接多个数组,返回新的数组
join:将数组中所有元素以参数作为分隔符放入一个字符
slice:slice(start,end),返回选定元素
map,filter,forEach,some,every等不改变原数组

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值