精华内容
下载资源
问答
  • 一个Object.keys垫片。 如果不可用,则调用其“ shim”方法对Object.keys进行填充。 最常见的用法: var keys = Object . keys || require ( 'object-keys' ) ; 例子 var keys = require ( 'object-keys' ) ; var...
  • js代码-(3)遍历对象自身属性:Object.keys()
  • fast-keysObject.keys高性能替代品。 其API具有与Array.prototype相同的许多方法,以及一些其他帮助器。 :fast-forward_button: :racing_car: 真的非常快 :brain: 比Object.keys更少的堆分配和垃圾回收 :...
  • js代码-Object.keys 返回的数组里,只包含自身可迭代的属性; for in 遍历的对象属性,既有自身可迭代的属性,也有原型链上的属性。
  • js代码-Object.keys()和Object.values()的简单用法。
  • Object.keys) { Object.keys = (function () { var hasOwnProperty = Object.prototype.hasOwnProperty, //原型上的方法,只取自身有的属性; hasDontEnumBug = !({toString: null}).propertyIsEnumerable('...
  • 大部分情况下Object.getOwnPropertyNames()与Object.keys(obj)的功能是一样的,我们一般也是用来获取一个JSON对象中所有属性,例如 const obj = { property1: 1, property2: 2, }; console.log(Object.keys(obj))...
  • 文章目录一.Object.keys()的用法1.Object.keys()介绍2.Object.keys()语法3.Object.keys()举例二.Object.values()的用法1.Object.values()介绍2.Object.values()语法3.Object.values()举例三.总结 一.Object.keys()的...

    一.Object.keys()的用法

    1.Object.keys()介绍

    Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组(返回字符串数组),数组中属性名的排列顺序和正常循环遍历该对象时返回的顺序一致 。

    2.Object.keys()语法

    Object.keys(obj)obj要返回其枚举自身属性的对象。
    返回值:一个表示给定对象的所有可枚举属性的字符串数组。

    3.Object.keys()举例

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

    let obj={
        name:"zhangsan",
        age:18,
        gender:"male"
    }
    console.log(Object.keys(obj));//[ 'name', 'age', 'gender' ]
    

    数组,返回数组索引值组成的数组(字符串)

    let arr = [1,2,3];
    console.log(Object.keys(arr));//[ '0', '1', '2' ]
    

    字符串,返回字符串索引组成的数组(字符串)

    let str = "Hello";
    console.log(Object.keys(str));//[ '0', '1', '2', '3', '4' ]
    

    构造函数,返回空数组或构造函数的属性名组成的数组

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

    实用技巧

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

    注意
    在ES5里,如果此方法的参数不是对象(而是一个原始值),那么它会抛出 TypeError。在ES2015中,非对象的参数将被强制转换为一个对象

    Object.keys("foo");
    // TypeError: "foo" is not an object (ES5 code)
    
    Object.keys("foo");
    // ["0", "1", "2"]                   (ES2015 code)
    

    当传入的对象的key是整数类型的时候,Object.keys()会返回有序的值。

    let zhangsan={
        40:"张三",
        20:18,
        30:"male"
    }
    console.log(Object.keys(zhangsan));//[ '20', '30', '40' ]
    Object.keys(zhangsan).map(keys=>{
        console.log(keys+':'+zhangsan[keys]);
    })
    
    // [ '20', '30', '40' ]
    // 20:18
    // 30:male
    // 40:张三
    


    二.Object.values()的用法

    1.Object.values()介绍

    Object.values()方法返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for...in循环的顺序相同 ( 区别在于 for-in循环枚举原型链中的属性 )。

    let zhangsan={
        name:"张三",
        age:18,
        gedner:"male"
    }
    for(let item in zhangsan){
        console.log(item);// name age gender
    }
    console.log(Object.values(zhangsan));//[ '张三', 18, 'male' ]
    
    2.Object.values()语法

    Object.values(obj) obj被可枚举属性的对象。
    返回值:一个包含对象自身的所有可枚举属性值的数组。

    3.Object.values()举例

    对象,返回对象的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.key() 、Object.values()的使用方法,方便在工作中使用Object.key() 、Object.values()会根据对象类型的不同返回不同的参数,特别需要注意的是它们都是返回的数组形式,Object.key()返回的是字符串形式的数组。

    展开全文
  • 1.Object.assign用法(拼接对象,返回一个新的对象) let obj1 = {a:1}; let obj2 = {b:2}; let obj3 = {c:3}; let obj = Object.assign({},obj1,obj2,obj3);...2.Object.keys用法(获取对象中key值)...

    1.Object.assign用法(拼接对象,返回一个新的对象)

    let obj1 = {a:1};
    let obj2 = {b:2};
    let obj3 = {c:3};
    let obj = Object.assign({},obj1,obj2,obj3);
    console.log(obj); //{a: 1, b: 2, c: 3}
    

    2.Object.keys用法(获取对象中key值)

    let obj = {a:1,b:2,c:3};
    console.log(Object.keys(obj)) //["a", "b", "c"]
    for(let key of Object.keys(obj)){
       console.log(key);
        //a
        //b
        //c
    }

    3.Object.values用法(获取对象中value值)

    let obj = {a:1,b:2,c:3};
    console.log(Object.values(obj)) //[1, 2, 3]
    for(let value of Object.values(obj)){
       console.log(value);
        //1
        //2
        //3
    }

    4 .Object.entries用法(获取对象中每一个键值对,然后转换成数组)

    let obj = {a:1,b:2,c:3};
    console.log(Object.entries(obj)) //[['a':1], ['b':2],['c':3]]
    for(let [key,value] of Object.entries(obj)){
       console.log(key,value);
        //a,1
        //b,2
        //c,3
    }
    展开全文
  • Object.keys()、Object.values()、Object.entries()的用法

    万次阅读 多人点赞 2019-08-17 21:26:25
    Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 处理对象,返回可枚举的属性数组 let person = {name:"张三",age:25,address:"深圳",getName:...

    一、Object.keys(obj)

    • 参数:要返回其枚举自身属性的对象
    • 返回值:一个表示给定对象的所有可枚举属性的字符串数组
    1. 处理对象,返回可枚举的属性数组
    let person = {name:"张三",age:25,address:"深圳",getName:function(){}};
    console.log(Object.keys(person));
    

    在这里插入图片描述

    1. 处理数组,返回索引值数组
    let arr = [1,2,3,4,5,6];
    console.log(Object.keys(arr));  //["0", "1", "2", "3", "4", "5"]
    
    1. 处理字符串,返回索引值数组
    let str = "ikun你好";
    console.log(Object.keys(str));  // ["0", "1", "2", "3", "4", "5"]
    
    1. 常用技巧
    let person = {name:"张三",age:25,address:"深圳",getName:function(){}};
    Object.keys(person).map((key)=>{
        console.log(person[key]);  // 获取到属性对应的值,做一些处理
    })
    

    在这里插入图片描述

    二、Object.values()

    1. 返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历属性的键值
    let obj = {
        foo : "bar",
        baz : 20
    };
    console.log(Object.values(obj));  // ["bar", 20]
    
    1. 返回数组的成员顺序,与属性的遍历部分介绍的排列规则一致
    const obj = {100 : "a", 2 : "b", 7 : "c"};
    console.log(Object.values(obj));   //["b", "c", "a"]
    
    • 属性名为数值的属性,是按照数值大小,从小到大遍历的,因此返回的顺序是b、c、a。
    1. Object.values()只会遍历对象自身的可遍历属性
    const obj = Object.create({},{p : {value : 10}});
    console.log(Object.values(obj));    
    console.log(Object.getOwnPropertyDescriptors(obj));
    

    在这里插入图片描述

    • Object.create方法的第二个参数添加的对象属性(属性p),如果不显式声明,默认是不可遍历的,因为p的属性描述对象的enumerable默认是false,Object.values不会返回这个属性。

    因此只要把enumerable改成true,Object.values就会返回属性p的值。

    const obj = Object.create({},{p:{
         value : 10,
         enumerable : true,
         configurable : true,
         writable : true,
    }})
    console.log(Object.values(obj));    //[10]
    
    1. Object.values会过滤属性名为 Symbol 值的属性
    //如果Object.values方法的参数是一个字符串,会返回各个字符组成的一个数组。
    Object.values({ [Symbol()]: 123, foo: 'abc' });
    console.log(Object.values('foo'));  //["f", "o", "o"]
    
    • 字符串会先转成一个类似数组的对象,字符串的每个字符,就是该对象的一个属性。因此,Object.values返回每个属性的键值,就是各个字符组成的一个数组
    1. 如果参数不是对象,Object.values会先将其转为对象
    console.log(Object.values(42));  // []
    console.log(Object.values(true));  // []
    console.log(Object.values(undefined));   //error
    console.log(Object.values(null));   //error
    
    • 由于数值和布尔值的包装对象,都不会为实例添加非继承的属性,因此Object.values会返回空数组。

    三、Object.entries()

    1. Object.entries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值对数组
    var obj = { foo: 'bar', baz: 42 };
    console.log(Object.entries(obj));
    

    在这里插入图片描述

    1. 如果原对象的属性名是一个 Symbol 值,该属性会被省略
    console.log(Object.entries({ [Symbol()]: 123, foo: 'abc' }));  // [ [ 'foo', 'abc' ] ]
    
    • 原对象有两个属性,Object.entries只输出属性名非 Symbol 值的属性。
    1. 遍历对象的属性
    let obj = {
        one : 1,
        two : 2,
    }
    for(let [k , v] of Object.entries(obj)){
         console.log(`${JSON.stringify(k)} : ${JSON.stringify(v)}`);
    }
    

    在这里插入图片描述

    1. 将对象转为真正的Map结构
    const obj = {foo : "bar", baz : 10};
    const map = new Map(Object.entries(obj));
    console.log(map); 
    

    在这里插入图片描述

    1. 实现Object.entries方法
    const entries = (obj) => {
         let result = [];
         const objType = typeof(obj);
         if(obj === undefined || obj === null){
              throw new TypeError();
         }
         if(objType === "number" || objType === "boolean"){
             return [];
         }
         for(let k of Object.keys(obj)){
             result.push([k,obj[k]]);
         }
         return result
    }
    
    展开全文
  • 一、object.keys() 1、object.keys()传入对象,返回一个数组类型 值是方法中对象的键(key) let obj={name:"小白",age:18,sex:"男"} let newobj=Object.keys(obj) console.log(newobj)//["name", "age", "sex"] ...

    一、object.keys()

    1、object.keys()传入对象,返回一个数组类型 值是方法中对象的键(key)

    let obj={name:"小白",age:18,sex:"男"}
    let newobj=Object.keys(obj)
    console.log(newobj)//["name", "age", "sex"]
     newobj.map(item=>{
    console.log("键名为"+":"+item+"----"+"键值为"+":"+obj[item])
    })
    

    控制台打印结果
    在这里插入图片描述2、传入字符串返回索引

    let obj="ABCD123"
    let newobj=Object.keys(obj)
    console.log(newobj)//["0", "1", "2", "3", "4", "5", "6"]
    console.log(obj[2])//C
    

    3、传放入数组返回索引

    let obj=["a","b","c","d"]
    let newobj=Object.keys(obj)
    console.log(newobj)//["0", "1", "2", "3"]
    console.log(obj[1])//b
    

    二、Object.values()

    1、Object.values()传入对象,返回一个数组类型 值是方法中对象的值(value)

    let obj={name:"小白",age:18,sex:"男"}
    let newobj=Object.values(obj)
    console.log(newobj)//["小白", 18, "男"]
    

    2、Object.values()传入对象,返回对象顺序成员

    let arr={5:"a",4:"b",3:"c",2:"d",1:"e"}
    console.log(Object.values(arr))//["e", "d", "c", "b", "a"]
    

    三、Object.entries()

    1、Object.entries()传入对象,返回一个数组类型 值是方法中对象的键和值

    let obj={name:"小白",age:18,sex:"男"}
    let newobj=Object.entries(obj)
    console.log(newobj)//[["name", "小白"],["age", 18],["sex", "男"]]
    

    控制台打印结果:
    在这里插入图片描述
    2、Object.entries()传入数组,返回数组包数组的形式

    let obj=["a","b","c","d"]
    let newobj=Object.entries(obj)
    console.log(newobj)//[["0", "a"],["0", "b"],["0", "c"],["0", "d"]]
    
    展开全文
  • 通过Object.key和Object.values取字符串/数组/对象的索引(属性名)和值的数组返回
  • Object.keys()的使用方法及数组遍历 Object.keys()用于获得由对象属性名组成的数组,可与数组遍历相结合使用,非常好用。和for...in方法功能类似,但有使用区别! 数组遍历可以用for()或forEach()来实现,forEach...
  • Object.keys(obj) 参数:要返回其枚举自身属性的对象 返回值:一个表示给定对象的所有可枚举属性的字符串数组 二、处理对象,返回可枚举的属性数组 let person = {name:"张三",age:25,address:"深圳",getName:...
  • 1 Object.keys() 语法: Object.keys(obj) 说明: Object.keys() 用于获取对象自身所有的属性; 效果类似for...in...; 返回一个由属性名组成的数组。 举例: var obj = { id: 1, pname: '...
  • 假定有如下格式的数据,目的就是配合使用Select下拉框组件渲染一个key为属性名,可见文本为属性值的UI效果。 // 文件类型 选择框枚举 const fileTypes = { techfile: '技术文件', ...Object.keys与map配合 的代...
  • Object.keys()方法用来获取一个对象的所有自身可枚举属性,然而,这个语法是在ECMAScript5中才可以使用,对于一些老旧的浏览器,没有支持这个语法,我们又该如何正确获取一个对象的自身可遍历属性呢? 源代码 对于...
  • Object.keys排序错乱

    2021-05-28 21:59:14
    console.log(Object.keys(obj)); //["2","7","100"] 不自动排序 const obj = { c: 'c', a: 'a', b: 'b' } Object.keys(obj) // ["c", "a", "b"] 原因:Object.keys()在内部会根据属性名key的类型进行不同的排序...
  • Object.keysObject.values

    千次阅读 2018-07-30 18:14:15
    使用Object.keys()或者Object.values()获取循环变量,渲染的时候根据循环变量获取值。Object.keys()函数返回索引(不仅仅是数字),Object.values()函数返回值。 新博客地址: http://www.caomage.com
  • for in 和 Object.keys区别

    2020-10-10 10:10:50
    Object构造器有一个实例属性keys,则可以返回以对象的属性为元素的数组。数组中属性名的顺序跟使用for-in遍历返回的顺序是一样的。 for-in 循环会枚举对象原型链上的可枚举属性,而Object.keys不会 for in 遍历...
  • Object.keys() **Object.keys(obj)**返回遍历对象可枚举类型的属性,不包括继承的属性 参数: obj要遍历的对象 返回值: 返回字符串数组 let obj = { name:'zhangsan', age:'18', func:function(){ ...
  • 前不久,一朋友求助,让我给解释一波Object.keys(), Object.getOwnPropertyNames(), for in的区别,面试中好几次呗问了。所以,抽了点时间看了看,大概把我看的过程中做的demo记录一下。 看了网上一些关于介绍...
  • 主要介绍了JS数组Object.keys()方法的使用,结合实例形式分析了javascript使用Object.keys()方法进行数组遍历、读取相关操作技巧,需要的朋友可以参考下
  • Object.keys(..)对象属性的顺序?

    千次阅读 2019-03-13 09:36:57
    在开发中遇到了这样一个麻烦,需要比较两个庞大的object数据结构对应属性的值是否发生了变化,并得标记这个属性,比如: const initialData = {name:"rockets",team:["Harden","Paul"],location:{country:"USA",city...
  • Object.keys(),Object.values(),Object.entries() Object.keys() ES5 引入了Object.keys()方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。 var obj = { foo:...
  • 一、for in 和Object.keys()的含义? 二、使用步骤 1.文字阐述 2.代码展示 总结 前言 一、for in 和Object.keys()的共性? for in和Object.keys()都是对象的循环遍历的方法 二、for in 和Object.keys...
  • Object.keys() 原生js给提供了一个方法:Object.keys(),可以获取一个对象的所有属性,该方法返回一个数组。 传入对象,返回属性名 var obj = {'a':'123','b':'345'}; console.log(Object.keys(obj)); // ['a','b'...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 224,942
精华内容 89,976
关键字:

object.keys