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中的对象转数组的方法的主要内容,如果未能解决你的问题,请参考以下文章