zoukankan      html  css  js  c++  java
  • js数组和js对象的增删改查

    一,js数组

    1,增

    (1)join()

    只增只在最后增可多个可增其他(数组,对象等),改变原数组(arr),新数组(arr1)为最新数组长度

    arr
    (11) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1]


    var arr1 = arr.push(0,0)
    arr1
    13
    arr
    (13) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0]


    arr1 = arr.push([6,6])
    arr1
    14
    arr
    (14) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0, Array(2)]

    arr1 = arr.push({name:"danya"})
    15
    arr
    (15) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0, Array(2), {…}]

    (2)unshift()

    与push()大致相同,只是新增数据位置在原数组的最前面。只增只在最前增可多个可增其他(数组,对象等),改变原数组(arr),新数组(arr2)为最新数组长度

    (3)concat()

    与push()大致相同,只是不改变原数组(arr)。只增只在最后增可多个可增其他(数组,对象等),不改变原数组(arr),新数组(arr3)为最新数组

    arr
    (12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]
    var arr3 = arr.concat(6,[7,8])
    arr3
    (15) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1, 6, 7, 8]

    arr
    (12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]

    (4)splice(起始位置,0 (删除个数),新增或删的数值)

    喜欢这个,可增可减可任意位置任意数量的增减可增其他(数组,对象等),改变原数组(arr),新数组(arr4)为删除元素的数组

    arr
    (12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]


    var arr4 = arr.splice(0,0,1)
    arr4
    []
    arr
    (13) [1, 0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]


    arr4 = arr.splice(0,1)
    [1]
    arr4
    [1]0: 1length: 1__proto__: Array(0)
    arr
    (12) [0, 1, 2, 3, 4, 5, 5, 4, 3, 2, 1, 1]


    arr4 = arr.splice(1,2,[8,9])
    (2) [1, 2]
    arr
    (11) [0, Array(2), 3, 4, 5, 5, 4, 3, 2, 1, 1]0: 01: (2) [8, 9]2: 33: 44: 55: 56: 47: 38: 29: 110: 1length: 11__proto__: Array(0)


    arr4 = arr.splice(1,2,8,9)
    (2) [Array(2), 3]
    arr
    (11) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1]

    2,删

    (1)pop()

    参照 join() ,但是pop()括号中不需要数字,所以只是一个一个从原数组的最后位置删元素。改变原数组,新数组为删除的元素,如果数组为空则返回undefine

    (2)shift()

    参照 unshift() ,但是shift()括号中不需要数字,所以只是一个一个从原数组的最前位置删元素。改变原数组,新数组为删除的元素,如果数组为空则返回undefine

    (3)slice(起始下标,结束下标(不写则截取从开始下标往后所有))

    参照 concat() ,但是slice()是用来截取数组,不会改变原数组,新数组为截取下来的数组。(参数都不能为负,若结束下标为负会截取从开始下标往后所有)

    (4)splice(起始位置,删除个数,新增或删的数值(可不写))

    3,改

    (1)splice(起始位置,删除个数,改成的数值)

    太强大了!

    arr
    (16) [0, 8, 9, 4, 5, 5, 4, 3, 2, 1, 1, 0, 0, Array(2), {…}, 7]
    var arr1 = arr.splice(2,3,1,1,1)
    undefined
    arr
    (16) [0, 8, 1, 1, 1, 5, 4, 3, 2, 1, 1, 0, 0, Array(2), {…}, 7]

    4,查

    (1)indexOf( 需检索的值,开始检索的位置(可省) )

    顺序找到,第一个想找的参数,返回下标;没有则返回-1


    let arr = [1,1,1,1,1,1,1,1]

    var arr1 = arr.indexOf(1,0)
    arr1
    0

    (2)lastIndexOf( 需检索的值,开始检索的位置(可省) )

    逆序找到,第一个想找的参数,返回下标;没有则返回-1

    let arr = [1,1,1,1,1,1,1,1]

    var arr1 = arr.lastIndexOf(1,3)
    arr1
    3


    var arr1 = arr.lastIndexOf(1,0)
    arr1
    0


    var arr1 = arr.lastIndexOf(1)
    arr1
    7

    二,js对象

    1,增

    (1)直接赋值

    let pers = {name:"danya",sex:"女",hobby:"苹果",1:"aa"}

    pers.a = 123
    pers
    {1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123}

    var data = "b"    
    pers[data]=456       //变量赋值
    pers
    {1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456}   

    (2)批量赋值

    pers
    {1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456}

    Object.assign( pers , { c:789 , d:000 } )
    {1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456, …}1: "aa"a: 123c: 789d: 0hobby: "苹果"name: "danya"__proto__: Object
    pers

    2,删

    (1)

    据说它比“替换”慢很多很多,delete在循环中使用并且在性能方面可能存在问题,但是它删的很干净

    pers
    {1: "aa", name: "danya", sex: "女", hobby: "苹果", a: 123, b: 456, …}1: "aa"a: 123b: 456c: 789d: 0hobby: "苹果"name: "danya"sex: "女"__proto__: Object

    delete pers.sex   ( 等价于delete pers["sex"] )
    pers
    {1: "aa", name: "danya", hobby: "苹果", a: 123, b: 456, c: 789, …}1: "aa"a: 123b: 456c: 789d: 0hobby: "苹果"name: "danya"__proto__: Object


    delete pers[data]      //变量赋值
    pers
    {1: "aa", name: "danya", hobby: "苹果", a: 123, c: 789, d: 0}

    3,改

    (1)直接赋值

    4,查

    (1)

    pers
    {1: "aa", name: "danya", hobby: "苹果", a: 123, c: 789, d: 0}


    "name" in pers
    true
    "sex" in pers
    false

    注意:pers.sex === undefined 不能断定'sex'是否为pers的属性,若pers中"sex":undefined,此式子也成立

  • 相关阅读:
    VirtualBox的四种网络连接方式详解
    need to be root
    Unreachable catch block for IOException. This exception is never thrown from the try statement body
    git fetch 拉取而不合并
    IOS开发的哪些异常之异常断点
    duplicate报ORA-01017权限问题
    Woody的Python学习笔记4
    微软100题第51题:和为n连续正数序列
    C语言scanf函数详解
    火星人乘坐核动力飞船回故乡
  • 原文地址:https://www.cnblogs.com/dandanyajin/p/13673197.html
Copyright © 2011-2022 走看看