码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [04]Web前端进阶—JS伪数组



    js伪数组

    • 一、伪数组的特点
    • 二、伪数组
      • 常见的伪数组
      • 伪数组转真
    • 三、最后


    一、伪数组的特点

    1. 具有lenght属性
    2. 可以使用下标访问数据
    3. 不具有数组的方法,比如push( ),pop( )等

    二、伪数组

    本质上是一个对象,有index、length等属性,但是不能使用数组的方法,如foreach( )、filter( )、map( )、find( )、reduce()等方法,但是能够通过遍历数组的方式进行访问(for 循环)

    常见的伪数组

    1. 字符串之类的
    2. 函数的arguments(参数)、
    3. 通过document.getElementByTagName( )等获得的元素集合
    4. key为0,1,2数字且有length的模糊性的对象
     //1.字符串
        let str = 'hello';
        console.log(str.length);
        console.log(str[1]);
    
    
        //2.function的arguments对象
        let fun = function(a,b,c){
            //arguments是一个对象
            console.log(arguments);//Arguments { 0: 1, 1: 2, 2: "123", … }
            console.log(a+b);//3
        }
        fun(1,2,'123');
    
    
        //3.含有length的"假"对象
        let obj = {
            length:2
        }
        console.log(obj.length);//有length
        console.log(obj[1]);//undefined
        obj[1] = 'hello';//这样就有obj[1];
        console.log(obj);//{ 1: "hello", length: 2 }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    伪数组转真

    1. ES6中将伪数组转换为真数组:var arr = Array.from(arguments);即可使用数组的方法

    2. ES5中将伪数组转换为真数组:var arr=Array.prototype.slice.call(arguments) 或 Array.prototype.slice.apply(arguments);

    3. 使用[].slice.call(arguments) 或 [].slice.apply(arguments)

    4. var arr = Array.of(arguments)

    5. var arr = new Array(arguments)

      注意:是返回一个新的数组
      
      • 1
    //例
    let obj = {
            length:2
        }
        var arr = new Array(obj);
        var arr1 = Array.from(obj);
        var arr3 = Array.prototype.slice.call(obj);
        var arr4 = Array.prototype.slice.apply(obj)
        console.log(arr1);
        console.log(arr3);
        console.log(arr4);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    三、最后

    如若文章有误,作者虚心请教,谢谢阅读

  • 相关阅读:
    基于kubernetes的分布式限流
    【C语言】文件操作(二)
    NO.396 旋转数组
    前端大容量存储方案IndexedDB
    ajax图书管理项目
    DBeaver Ultimate 22.1.0 连接数据库(MySQL+Mongo+Clickhouse)
    【反悔贪心】2022ICPC南京 G
    坚持每天做一件事情的意义
    2022年陕西水利水电施工安全员模拟试题及答案
    数学建模-2022年亚太赛C题(含思路过程和代码)
  • 原文地址:https://blog.csdn.net/qq_33966310/article/details/126673008
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号