zoukankan      html  css  js  c++  java
  • javascript中的对象转数组的方法

    1. 对象没有length属性
    2.Array.prototype.slice.call(obj)能将具有length属性的对象转成数组,不带length属性的对象,只能声明数组去转换
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
                  // 1. 对象没有length属性
                 //     Array.prototype.slice.call(obj)能将具有length属性的对象转成数组,不带length属性的对象,只能声明数组去转换
        let obj = {0: 'a', 1: 'b', 2:'c',length:3};
        let obj1 = {0: 'a', 1: 'b', 2:'c'};
        let arr = Array.from(obj); // ['a','b','c'];
        var arr2=[];
       for(var i in obj){
            arr2.push(obj[i]);
       }
      var arr3= Array.prototype.slice.call(obj)
        console.log(arr,arr2,arr3);
    
    
        //会输出undefined,因为对象是没有length属性的。
       // console.log(obj1.length);
        
    
    
         function test(a, b, c, d) {
                var arg = Array.prototype.slice.call(arguments, 1);
                alert(arg);
            }
            test("a", "b", "c", "d"); //b,c,d
    
    //通用的转化数组的方法
            var toArray = function (s) {
                if (s.length) {
                    return Array.prototype.slice.call(s);
                }
                else {
                    var arr = [];
                    for (var i in s) {
                       arr[i] = s[i];
                        //or
                       // arr.push(s[i]);
                    }
                    return arr;
                }
    
            }
        console.log(toArray(obj1));
    
    
        var t={
             id:2,
             name:"zain",
             sex:'男'
        };
        console.log(toArray(t));
        console.log(t['name'],t.name);
    
    
    
    
    
        </script>
    
    
    </body>
    </html>
    

      

    sometimes the hardest part isn't letting go,but rather start over
  • 相关阅读:
    迁移式学习
    VMware Workstation 16激活码
    OpenStack安装部署
    git码云操作
    vs 2019 正则替换
    linux中Redis单机安装
    ASP.NET/C#执行数据库过程函数带RETURN的项目接收。
    IDEA配置部属Tomcat
    Java集合之HashMap源码分析(put()方法)
    反编译一款APP然后重新打包(Windows环境)
  • 原文地址:https://www.cnblogs.com/zhumeiming/p/9959181.html
Copyright © 2011-2022 走看看