javascript中的对象转数组的方法

Posted z.ain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

  

以上是关于javascript中的对象转数组的方法的主要内容,如果未能解决你的问题,请参考以下文章

几个有用的JavaScript/jQuery代码片段(转)

javascript 的object对象的prototype属性

web代码片段

怎么把json字符串转成数组对象

JavaScript单行代码,也就是代码片段

转: JavaScript 获取对象属性和方法