Object相关方法

104 阅读2分钟

Object.keys()

ES5 引入了Object.keys方法,返回参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名

注意:返回的是字符串形式的数组。

传入对象,返回属性名

 var data={a:1,b:2,c:9,d:4,e:5};
     console.log(Object.keys(data));//["a", "b", "c", "d", "e"]
     Object.keys(data).map((key,item)=>{
         console.log(key,data[key]);//key=>属性名    data[key]=>属性值
 });

传入字符串,返回索引

 var str = 'ab1234';
 console.log(Object.keys(obj));  //[0,1,2,3,4,5]

传入数组 返回索引

 var arr = ["a", "b", "c"];
 console.log(Object.keys(arr)); // console: ["0", "1", "2"]

构造函数 返回空数组

注意:实例化对象传入的组成的数组

 function Pasta(name, age, gender) {
       this.name = name;
       this.age = age;
       this.gender = gender;
       this.toString = function () {
             return (this.name + ", " + this.age + ", " + this.gender);
     }
 }
 ​
 console.log(Object.keys(Pasta)); //console: []
 ​
 var spaghetti = new Pasta("Tom", 20, "male");
 console.log(Object.keys(spaghetti)); //console: ["name", "age", "gender", "toString"]

实用技巧

 let zhangsan={
     name:"张三",
     age:18,
     gender:"male"
 }
 Object.keys(zhangsan).map(key=>{
     console.log(key+':'+zhangsan[key]);
 })
 // name:张三
 // age:18
 // gender:male

Object.values()

Object.values方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值

①对象,返回对象的value值组成的数组(字符串)

 let zhangsan={
     name:"张三",
     age:18,
     gedner:"male"
 }
 console.log(Object.values(zhangsan));//[ '张三', 18, 'male' ]

②数组,返回该数组(字符串)

 let  arr = [20,10,30];
 console.log(Object.values(arr));//[ 20, 10, 30 ]

③字符串,返回单个字符组成的数组(字符串)

 let str =  "hello";
 console.log(Object.values(str));//[ 'h', 'e', 'l', 'l', 'o' ]

④构造函数,返回空数组或实例化对象传入的值组成的数组

 function Fn(name,age,gender){
     this.name=name;
     this.age=age;
     this.gender=gender;
 }
 console.log(Object.values(Fn));//[]
 let mark = new Fn("mark",18,"male");
 console.log(Object.values(mark));//[ 'mark', 18, 'male' ]

Object.keys()相同的是:当传入的对象的键为整数类型时,Object.values()会返回有序的值组成的数组。

 let obj = {40:"mark",20:18,30:"male"};
 console.log(Object.keys(obj));
 console.log(Object.values(obj));
 // [ '20', '30', '40' ]
 // [ 18, 'male', 'mark' ]

Object.entries()

Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值对数组。