zoukankan      html  css  js  c++  java
  • 深入理解js数组

    一、数组遍历

    1.原生js方法

    for(var i=0;i<arr.length;i++){
        console.log(arr[i])
    }

    2.forEach/map

    arr.forEach(function(i){
        console.log(i)
    })
    
    arr.map(function(i){
        console.log(i)
    })

    3.for...of

    ES6新增功能

    for(let key of arr){
        console.log(key);
    }

    4.for…in

    for…in主要是为遍历对象而设计的,不适用于遍历数组。 
      遍历数组时的缺点: 
        1. 数组的键名是数字,但是for…in循环是以字符串作为键名“0”、“1”、“2”等等。 
        2. for…in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。 
        3. 某些情况下,for…in循环会以任意顺序遍历键名。

    ============================================================================

    二、数组的一些常用方法

    1、直接操作数组的:

    shift( )移除数组中的第一项,返回该项
    unshitf( )在数组前端添加任意个项,返回新数组的长度
    push( ) 在数组末尾添加任意个项,返回修改后数组的长度
    pop( ) 删除数组最后一项,返回该项
    reverse( ) 反转数组顺序
    splice(start, 要删除的项,要插入的项) 对原数组进行删除、插入、替换操作,返回删除的项(如果没有删除,则返回空数组)
    sort([compareFun])根据某种规则排序,默认Unicode位点排序

    2、不影响原数组,只返回新数组的:

    toString( )valueOf( ) :都返回数组的以逗号分隔的字符串
    join( )返回数组的以指定分隔符分隔的字符串
    concat( ) 合并数组,返回合并后的新数组
    slice( start, [end]) 截取数组某一段值,slice( )若不传值,则执行浅拷贝,start从0开始
    map(callback[,thisArg])让数组通过某种计算,返回新的数组、
    filter( callback[, thisArg])筛选出数组中符合条件的项,组成新数组
    reduce( callback[, thisArg]) 让数组中前项和后项做某种运算,并累计最终值

    3、返回其他值的

    forEach(callback[, thisArg])让数组中的每一项做一件事,返回undefined ie9+
    every( callback[, thisArg])检验数组中每一项是否符合条件,全部符合返回true
    some( callback[, thisArg])检验数组中是否有符合条件的项,存在返回true


    ============================================================================

    三、数组及对象的深拷贝

    https://www.cnblogs.com/webrqy/p/9772893.html

    ### 版权申明:本文由objJs原创,允许转载,但转载必须附注首发链接。谢谢 

  • 相关阅读:
    对象池使用时要注意几点
    Flash3D学习计划(一)——3D渲染的一般管线流程
    714. Best Time to Buy and Sell Stock with Transaction Fee
    712. Minimum ASCII Delete Sum for Two Strings
    647. Palindromic Substrings(马拉车算法)
    413. Arithmetic Slices
    877. Stone Game
    338. Counting Bits
    303. Range Sum Query
    198. House Robber
  • 原文地址:https://www.cnblogs.com/webrqy/p/6054437.html
Copyright © 2011-2022 走看看