精华内容
下载资源
问答
  • 2022-03-10 15:22:27

    获取key值有下列几种方法:

    • for..in...  原型链上 继承过来可枚举的都可拿到
    • object.keys 返回一个数组-----是如何排序的?先排合法的数组索引(0.1.2.3.4 整数)再按照字符串(a,b,c)创建顺序排序,再symble类型创建时间 (可枚举都能拿到)
    • Object.getOwnPropertyNames(obj)返回一个数组,拥有自身的可枚举属性和不可枚举属性.但是不可以拿到Symbol作为键的属性。
    • Object.getOwnPropertySymbols(obj) 方法返回一个给定对象自身的所有 Symbol 属性的数组。
    • reflect.ownKeys() 返回一个由目标对象自身的属性键组成的数组。相当于Object.getOwnPropertyNames(obj)方法 和 Object.getOwnPropertySymbols(obj)的合并。

    提到for...in... 想到 和for...of...的区别

    • for..in...  遍历key值,遍历原型链上、继承过来可枚举的都可拿到
    • for of 遍历value,只能遍历有迭代器属性
    更多相关内容
  • 获取一个对象下所有的键(key

    千次阅读 2020-09-04 00:56:56
    // object.keys var obj = { name: 'asd', ... // 会返回一个数组 // ["name", "age", "num"] // for in var list = [] for (const key in obj) { list.push(key) console.log(key) } // li
    // object.keys
    	var obj = {
    			name: 'asd',
    			age: 20,
    			num: 88
    	}
    	var keys = Object.keys(obj)
    	console.log(keys)
    	// 会返回一个数组
    	// ["name", "age", "num"]
    	
    	// for in
    	var list = []
    	for (const key in obj) {
    		list.push(key)
    		console.log(key)
    	}
    	// list: ['name', 'age', 'num']
    	// name  age  num
    
    
    // Object.values() //获取所有的value值
    
    // Object.entries() //分别将keys 和 values 放到两个数组中
    
    展开全文
  • js几种获取对象key的方法和区别

    千次阅读 2022-03-27 21:49:47
    js几种获取对象key的方法和区别 1、Object.keys() , 遍历自身可以枚举属性 let myColors = { color1: 'pink', color2: 'red' }; let yourColors = { color3: 'green', color4: 'blue' }; Object....

    js几种获取对象key的方法和区别

    1、Object.keys() , 遍历自身可以枚举属性

        let myColors = {
            color1: 'pink',
            color2: 'red'
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue'
        };
        Object.setPrototypeOf(yourColors, myColors);
    	//setPrototypeOf()设置一个指定的对象的原型到另一个对象or NULL
        Object.keys(myColors);
        Object.keys(yourColors);
        console.log(myColors);
        console.log(yourColors);
        console.log(myColors['color1']);
        console.log(yourColors['color3']);
    

    在这里插入图片描述

    解析:Object.keys(myColors) 返回 myColors对象的自身可枚举属性键;Object.keys(yourColors)也是返回yourColors对象自身的可枚举属性键。setPrototypeOf()方法让yourColors继承myColors原型的属性,但是能看到并不能遍历出来。Object.keys() 是 遍历自身可以枚举属性。

    2、Ojbect.values() /Ojject.entries(),返回自身可枚举属性的键值对数组

        let myColors = {
            color1: 'pink',
            color2: 'red'
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue'
        };
        Object.setPrototypeOf(yourColors, myColors);
        console.log(Object.values(myColors));
        console.log(Object.entries(myColors));
    

    在这里插入图片描述

    3、for-in 遍历可枚举属性,prototype 属性

    for-in遍历对象所有的可枚举属性,包括原型。

    ps:for-in和for-of的区别

    ①for in 遍历的是数组的索引(即键名),for of遍历的是数组元素值

    ②for in 得到对象的key or 数组 or 字符串的下标

    ③for of 得到对象的value or 数组 or 字符串的值

    for in更适合遍历对象

        let myColors = {
            color1: 'pink',
            color2: 'red'
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue'
        };
        Object.setPrototypeOf(yourColors, myColors);
        let arrayColors = [];
        for (let key in yourColors) {
            arrayColors.push(key);
        }
        console.log(arrayColors);
    

    在这里插入图片描述

    解析:arrayColors 数组 包含yourColors自身属性键,也有从原型对象myColrs继承的属性。

    4、hasOwnProperty ,遍历可枚举属性

    返回一个布尔值,只能判断自有属性是否存在,对于继承属性会返回false,因为它不查找原型链的函数

    //不使用hasOwnProperty,返回自身属性和继承原型属性
    	let myColors = {
            color1: 'pink',
            color2: 'red'
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue'
        };
        Object.setPrototypeOf(yourColors, myColors);
        for (let i in yourColors) {
            console.log(i);
        }
    

    在这里插入图片描述

    //使用hasOwnProperty,返回自身属性
        let myColors = {
            color1: 'pink',
            color2: 'red'
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue'
        };
        Object.setPrototypeOf(yourColors, myColors);
        for (let i in yourColors) {
            if (yourColors.hasOwnProperty(i)) { //加上if判断去掉原型链上的
                console.log(i)
            }
        }
    

    在这里插入图片描述

    5、getOwnPropertyNames() 返回可枚举属性和不可枚举属性,不包括prototype属性,不包括symbol类型的key

    getOwnPropertyNames()返回一个对象自身所有的属性,包括可枚举和不可枚举属性组成的数组

    //返回对象自身所有的属性,可枚举和不可枚举组成的数组,但不包括prototype属性
    	let myColors = {
            color1: 'pink',
            color2: 'red'
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue'
        };
        Object.setPrototypeOf(yourColors, myColors);
        //定义不可枚举属性
        Object.defineProperty(yourColors, 'your', {
            enumerable: true,
            value: 6,
        })
        console.log(Object.getOwnPropertyNames(yourColors));
    

    在这里插入图片描述

    //返回对象自身所有的属性,可枚举和不可枚举组成的数组,但不包括Symbol类型的key
        let _item = Symbol('item') //定义Symbol数据类型
        let myColors = {
            color1: 'pink',
            color2: 'red',
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue',
            [_item]: 'mySymbol'
        };
        Object.setPrototypeOf(yourColors, myColors);
        //定义不可枚举属性
        Object.defineProperty(yourColors, 'your', {
            enumerable: true,
            value: 6,
        })
        console.log(Object.getOwnPropertyNames(yourColors));
    

    在这里插入图片描述

    6、getOwnPropertySymbols() 返回symbol类型的key属性,不关心是否可枚举

    返回对象自身的所有Symbol属性组成的数组

    	let _item = Symbol('item') //定义Symbol数据类型
        let myColors = {
            color1: 'pink',
            color2: 'red',
        };
        let yourColors = {
            color3: 'green',
            color4: 'blue',
            [_item]: 'mySymbol'
        };
        Object.setPrototypeOf(yourColors, myColors);
        //定义不可枚举属性
        Object.defineProperty(yourColors, 'your', {
            enumerable: true,
            value: 6,
        })
        console.log(Object.getOwnPropertySymbols(yourColors));
    

    在这里插入图片描述

    7、对象对key的获取方法

        function getkey() {
            let obj = {
                a: 1,
                b: 2,
                c: 3
            };
    
            Object.prototype.d = 4;
            Object.defineProperty(obj, 'e', {
                configurable: true,
                writable: false,
                enumerable: false,
                value: 5
            });
    
            Object.defineProperty(obj, 'f', {
                configurable: true,
                writable: false,
                enumerable: true,
                value: 6
            });
    
            const symbolg = Symbol('g');
            const symbolh = Symbol('h');
    
            Object.defineProperty(obj, symbolg, {
                configurable: true,
                writable: false,
                enumerable: false,
                value: 7
            });
    
            Object.defineProperty(obj, symbolh, {
                configurable: true,
                writable: false,
                enumerable: true,
                value: 8
            });
    
            console.log();
            for (let key in obj) {
                console.log('-- for-in:', key);
                if (obj.hasOwnProperty(key)) {
                    console.log('-- hasOwnProperty: ', key);
                }
            }
            console.log('-- getOwnPropertyNames: ', Object.getOwnPropertyNames(obj));
            console.log('-- getOwnPropertyDescriptor: ', Object.getOwnPropertyDescriptor(obj));
            console.log('-- getOwnPropertySymbols: ', Object.getOwnPropertySymbols(obj));
            console.log('-- keys: ', Object.keys(obj));
    
        }
    /***
     * 
     -- for-in: a
     -- hasOwnProperty:  a
     -- for-in: b
     -- hasOwnProperty:  b
     -- for-in: c
     -- hasOwnProperty:  c
     -- for-in: f
     -- hasOwnProperty:  f
     -- for-in: d
     -- getOwnPropertyNames:  (5) ["a", "b", "c", "e", "f"]
     -- getOwnPropertyDescriptor:  undefined (可获取对象属性的具体配置,总共是6个)
     -- getOwnPropertySymbols:  (2) [Symbol(g), Symbol(h)]
     -- keys:  (4) ["a", "b", "c", "f"]
     */
    

    8、对象声明/对象赋值

    /**
     * 对象声明
     * 首选 {}
     * 
     * 对象赋值
     * 首选 对象内赋值
     */
    function getKey(flag) {
        return `uniqued key ${flag}`;
    }
    const obj = {
        id: 5,
        name: 'San Francisco',
        [getKey('enabled')]: true,  // 可变key提前声明
    };
    

    9、对象扩展

    /**
     * 
     * 对象 扩展 
     * 
     * object assign 对象扩展
     * 每次执行 assign 
     * 事实上是对 object 原来对象的扩展然后并返回这个新的对象,🐘
     * 原理的对象被修改
     * 
     * */
    const row = {
        display: 'inline-block',
        height: '50px',
        lineHeight: '50px',
    }
    const rowLeft = Object.assign(row, {
        color: 'rgba(0,0,0,.4)'
    });
    const rowRight = Object.assign(row, {
        color: 'rgba(0,0,0,.6)'
    });
    
    console.log(rowLeft, rowRight, '同时都被修改为最新的assign值');
    
    展开全文
  • JS对象获取key和value

    千次阅读 2021-02-05 21:56:16
    var peopleobj={jiangyx: "姜艳霞", yeluosen: "叶落森"}for(let i in peopleobj){debuggervar obj={nickname:i,realName:peopleobj[i]}peopleArray.push(obj)}console.log(peopleArray)js对象key类型http:...

    var peopleArray=[]

    var peopleobj={jiangyx: "姜艳霞", yeluosen: "叶落森"}

    for(let i in peopleobj){

    debugger

    var obj={

    nickname:i,

    realName:peopleobj[i]

    }

    peopleArray.push(obj)

    }

    console.log(peopleArray)

    ae1c1aa6702dfc47f6fed494ced98a37.png

    js对象的key类型

    http://javascript.ruanyifeng.com/grammar/object.html#toc2 对象的所有键名都是字符串(ES6 又引入了 Symbol 值也可以作为键名),所以加 ...

    理清JS数组、json、js对象的区别与联系

    最近在敲代码时,遇上了一个关于JS数组的问题,由此引发了关于对象和json的联想,曾经觉得很畅顺的知识点突然模糊了.于是,为了理清这些东西,有了如下这篇文章.觉得没问题的猿们可以当复习,而那些带着疑问 ...

    利用js对象的特性,去掉数组中的重复项

    ebsong", qq:289483936 } 想要获取这个obj对象的键“name”和"qq&q ...

    随机推荐

    深入浅出讲解:php的socket通信

    对TCP/IP.UDP.Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵.那么我想问:1.         什么是TCP/IP.UDP?2.         Socke ...

    win8或win8.1修改注册表失败的原因

    win8 and win8.1 modify the registry need compiled to be different versions according to the os bits.

    bootstrap插件小记

    1.模态框 除了通过data-toggle和data-target来控制模态弹出窗之外,Bootstrap框架针对模态弹出框还提供了其他自定义data-属性,来控制模态弹出窗.比如说:是否有灰色背景m ...

    struts2由<s:tree>要么dtree小工具 建立树

    一个 .方法: 1.引入新的标签:

    CodeForces 605A Sorting Railway Cars 思维

    早起一水…… 题意看着和蓝桥杯B组的大题第二道貌似一个意思…… 不过还是有亮瞎双眼的超短代码…… 总的意思呢…… 就是最长增长子序列且增长差距为1的的…… 然后n-最大长度…… 这都怎么想的…… 希望 ...

    (七十三)iOS本地推送通知的实现

    iOS的推送通知分为本地推送和网络推送两种,如果App处于挂起状态,是可以发送本地通知的,如果已经被杀掉,则只有定时通知可以被执行,而类似于QQ的那种网络消息推送就无法实现了,因为App的网络模块在被 ...

    idea引用本地jar包的方法及报错解决

    1 首先将本地jar包打入mvn本地仓库 cmd mvn install:install-file -Dfile=E://xx.jar 本地jar包绝对路径 -DgroupId=com.ccp -Da ...

    用Java进行大数处理(BigInteger)-hdu1042

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目描述: 代码实现: import java.util.Scanner; import jav ...

    CF733F Drivers Dissatisfaction【链剖】【最小生成树应用】

    F. Drivers Dissatisfaction time limit per test 4 seconds memory limit per test 256 megabytes input s ...

    c# 7 vs2017 tuple

    var unnamed = (42, "The meaning of life");    var anonymous = (16, "a perfect square& ...

    展开全文
  • JS获取对象key值的两种方法

    千次阅读 2021-08-18 14:51:17
    例: test:{ name:'小明', age:12, address:'北京', } 方法一: 使用for…in for(let ele in test){ ...Object.keys(test) //该方法获取到的是一个数组 结果:[‘name’,‘age’,‘address’] ...
  • 怎么获取对象key

    万次阅读 2020-04-23 10:00:19
    一般获取对象key值有两种方法: for...in... for...in...是遍历对象的所有key值。 function a(){ const b={"x":"c","y":"d"}; for(let key in b){ console.log(key); } } a(); 输出结果为:"x" "y" ...
  • 获取Object对象Key

    千次阅读 2020-07-07 10:55:02
    拓展方法:通过反射获取对象的属性值 public static object GetPropertyValue(this object info, string field) { if (info == null) return null; Type t = info.GetType(); IEnumerable<System.Reflection....
  • js 获取对象key名和key

    千次阅读 2021-05-06 11:16:28
    使用for in遍历对象时,需要用hasOwnProperty(key)方法过滤掉非对象自身的属性(继承自原型链的属性) var obj = { "name" : "zh", "age" : 22, } for(var key in obj){ //遍历对象的所有属性,包括原型链上的...
  • js 获取对象key和value

    千次阅读 2020-12-08 17:06:29
    获取对象的 keys 数组:Object.keys(obj) 获取对象的 values 数组:Object.values(obj) let obj = { name: '张三', age: 30, sex: '男' ...获取 keys的第一个: Object.keys(obj)[0] // name ...
  • Js中获取对象的所有key

    千次阅读 2020-08-14 13:25:22
    假如现在有一个对象 var obj = { A:2 ,B:"Ray" ,C:true ,D:function(){} } 如果想遍历对象obj中的所有键值,一般是用以下方式 for(var key in obj){ console.log(key,obj[key]) } 输出: A 2 B Ray C ...
  • Js 之获取对象key

    千次阅读 2019-12-19 17:51:26
    var data={8:102,9:103,10:106};console.log(data);//{8:102,9:103,10:106}console.log(Object.keys(data));//["8", "9", "10"] ...所以只要Object.keys(data)[0], 就可以获得第一个键值对的key值 ...
  • ES6中获取对象key

    千次阅读 2020-12-20 06:11:06
    ES6中获取对象的keyconst json = {‘a‘: 123, ‘b‘: 321};Object.keys(json).forEach(key => {window.console.log(key);}); // [a,b]ES6一共有五种方法可以遍历对象的属性。for ... in:循环遍历对象自身的和...
  • javascript获取json对象key名称的两种方法第一种方法第二种方法 第一种方法 ... for (key in obj){ ...javascript中,Object具有一个key属性,可以返回json对象key的数组 (Object has a property keys, returns
  • 准备数据 data(){ return { obj:{ '001':'a', '002':'b', '003':'c', '004':'d' } } }, 1、遍历对象获取所有的key和value for (let k in this.obj){ console.log(k
  • JavaScript中将变量作为json对象KEY,来...1、获取json多有的key值,作为一个数组 var data={k:'aa',b:'aaa'}; var keyData=Object.keys(data) //keyData=['k','b'] 2、动态传变量作为key var data={k:'aa',b:'a
  • 获取对象key和value

    万次阅读 2019-04-11 15:40:09
    ES5 引入了Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名。 var obj = { foo: "bar", baz: 42 };Object.keys(obj)// ["foo", "baz"] 目前, ES7 有...
  • 、先说对象,如何获取key【键】; var obj={ name:"websong", qq:289483936 } 想要获取obj对象的键“name”和"qq",需要用到内置对象Object的keys方法,代码如下: Object.keys(obj).forEach(function(key...
  • 、for in 方法 var apple = { id:1, name:"apple", price:4 }; for(let obj in apple){ console.log(obj+"----->"+apple[obj]); // id----->1 // name----->apple // price-----&...
  • js对象中通过key获取value的小总结

    千次阅读 2021-11-17 17:06:05
    首先获取对象中的value有几种方法,本处只写出原生的方法 const obj = { name1: '鲨鱼辣椒', info: { address: { location: 'beijin', }, }, } 获取name1 1. obj.name1 2. obj['name1'] 以上两种方法均可以获取到结果...
  • 1,直接上代码el: '#flip-list-demo',data: {test:[],items11: [{number:1,name:'北京',money:8889},{number:2,name:'广东',money:8888},{number:3,name:'天津',money:8888},],items12:[{number:4,name:'浙江',money...
  • 获取一个对象key 中的 value,把他作为另一个对象key。 首先想到的是,获取到 value,把值作为 key ,但实际上获取的值放到 tc中。(let tc = val.tcId,tc = 1)当我们把 tc 作为 key 值时,系统不会把 1...
  • js 对象key和value的获取方法。

    千次阅读 2019-07-23 10:49:39
    在js里如何获取对象key值和对应的value呢? 我们将使用两种方法获取。 // 自定义方法变量,获取对象的value,keys var values = function(object) { var values = []; for (var key in object) values.push...
  • 假设我们现在有一个对象,其第一个键名称是fruits,值是fruits的数组。 const fruitObj={ fruits: ['apple','banana','orange','peach'] } console.log(fruitObj[0]); Output 输出量 undefined Since objects do ...
  • JS获取对象数组特定key对应的值数组

    千次阅读 2020-11-22 23:01:35
    获取对象数组特定key对应的值数组,发现JS并无相关函数。也可以理解,因为JS中的对象数组的里面的对象可能为null对象,操作此值直接抛异常,咋不这么极端,在正常对象数组的情况下,可以如下实现该功能。当然你也...
  • 如何获取对象key

    千次阅读 2017-10-27 17:24:02
    var tt={'my':'hello'};for(var i in tt){console.log(i)}
  • cid: "4654", coupon_id: "0,0", discount: 0, freight: "107", freight_price: "20", is_distribution: "0", mch_id: "154", membership_price: 4, num: "1", pid: "912", price: "400.00", } //想分别获取它的key ...
  • 最近通过对对象相关知识的深入学习,我发现对对象的遍历主要分为两种情况,种是在页面中遍历,另外种是在方法中遍历对象,现在我们就从这两种情况分别来遍历对象获取对象key和value。 情况:在页面中遍历...
  • 如何获取JS对象的第一个键的值

    千次阅读 2020-10-07 21:57:59
    1.遍历对象,在第一个键值对的地方跳出来 var form={user:'zhangsan',type:'vip'} var val=null;//用来记录第一个键值对的值 for(var key in form) { val=form[key]; break; } 2.把对象转化为数组,然后用数组的...
  • typescript/ts 对象根据value获取key

    千次阅读 2021-06-18 10:00:00
    const user = { name: 'abl', age: 24, sex: '男' } type Compare<T, U> = (a: T, b: U) => boolean; function findKey<T, U extends T[keyof T]>...T[keyof T], U>... ): keyo
  • 获取json对象中的key小技巧

    千次阅读 2019-04-28 23:49:26
    比如有一个json var json = {"name" : "Tom", "age" : 18}; 想分别获取它的key 和 value for (var key in json) { console.log(key); //获取key值 console.log(json[key]); //获取对应的value值 } 还要一种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 957,073
精华内容 382,829
关键字:

获取一个对象的key