js 将类数组对象转成数组

类数组对象具有数组对象的一些属性,比如length,可以遍历但是不能使用数组对象的方法,常见的类数组对象就是function的参数变量arguments,还有NodeList,以下是将类数组对象转化为数组对象:

     var a = {
                length: 3,
                0: {
                    key: 1
                },
                1: {
                    key: 3
                },
                2: {
                    key: 2
                }
            };
            console.log(a);
           
            function hyToArray(a) {
                try {
                    return Array.prototype.slice.call(a);
                } catch (err) {
                 //IE中
                    var b = [];
                    for (var i = 0; i < a.length; i++) {
                        b.push(a[i]);
                    }
                    return b;
                }
            };
            console.log(hyToArray(a).sort(function(a, b) { return a.key - b.key; }));

 

你可能感兴趣的:(js 将类数组对象转成数组)