JavaScript中Object.keys()的用法示例详解

史上最菜开发 2025-01-04 09:24:38编程技术
488

在JavaScript中,Object.keys()方法是一个功能强大的工具,它允许开发者获取对象的所有可枚举属性名,并以数组的形式返回。这一特性使得Object.keys()在处理对象属性、字符串字符索引以及数组元素索引等方面具有广泛的应用。无论你是前端开发者,还是后端开发者,掌握Object.keys()的用法都将极大地提升你的编码效率和代码可读性。本文将通过详细的示例和解释,带你深入理解Object.keys()的用法,以及它在不同数据类型上的表现。

Object.keys()的用法

Object.keys()的用法
作用:遍历对象
返回结果:返回对象中每一项key的数组

例子1:

// 1. 定义一个对象
    var obj = { 0:'熊大',1:'熊二',2:'光头强' }
    // 2. 使用Object.keys()方法
    var keyValue = Object.keys(obj)
    // 3. 打印结果
    console.log(keyValue)  // 得到是:["0","1","2"]

例子2:

var obj2 = {'name':'a','list':{'a':'value1','b':'value2'},'num':13}
var keyValue2 = Object.keys(obj2)
console.log(keyValue2)  // 得到是:["name","list","num"]

也可以结合forEach来使用Object.keys(要遍历的对象).forEach((v,i) => {})例子3:

 Object.keys(obj2).forEach(function(key){
     console.log(key, obj2[key]);
     })
     // 得到的是:name---a
     //          list---{a:"value",b:"value"}
     //          num----13

Object.keys()方法详解

一、官方解释

Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 。如果对象的键-值都不可枚举,那么将返回由键组成的数组。

二、语法

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

三、处理对象,返回可枚举的属性数组

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Object.keys()处理对象,返回可枚举的属性数组</title>
    </head>
    <body>
        <script type="text/javascript">
            let person={
                name:'一只流浪的kk',
                age:20,
                eat:function(){}
            }
            console.log(Object.keys(person));//    ['name','age','eat']
        </script>
    </body>
</html>

JavaScript中Object.keys()的用法示例详解

四、处理数组,返回索引值数组

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Object.keys()处理数组,返回索引值数组</title>
    </head>
    <body>
        <script type="text/javascript">
            let arr=[1,2,3,4,5];
            console.log(Object.keys(arr));//['0','1','2','3','4','5']
        </script>
    </body>
</html>

JavaScript中Object.keys()的用法示例详解

五、处理字符串,返回索引值数组

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Object.keys()处理字符串,返回索引值数组</title>
    </head>
    <body>
        <script type="text/javascript">
            let str='hello';
            console.log(Object.keys(str));//['0','1','2','3','4']
        </script>
    </body>
</html>

JavaScript中Object.keys()的用法示例详解

六、实用技巧

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
           let person={
                   name:'一只流浪的kk',
                   age:18,
                   eat:function(){
                   }
           }
           Object.keys(person).map((key)=>{
                   person[key];//获得属性对应的值,可以进行其它处理
           })
        </script>
    </body>
</html>

七、Object.values()和Object.keys()是相反的操作,把一个对象的值转换为数组

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

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

总结

通过对Object.keys()方法的深入学习和实践,我们可以看到,它在处理对象、字符串和数组时都展现出了极大的灵活性和实用性。无论是获取对象的所有可枚举属性名,还是获取字符串的字符索引数组,亦或是获取数组的索引数组,Object.keys()都能轻松应对。此外,我们还了解了Object.keys()Object.values()Object.entries()等方法的区别与联系,这些方法共同构成了JavaScript中操作对象属性的强大工具集。掌握这些方法,将帮助你在开发中更加高效地处理对象数据,提升代码的可读性和可维护性。总之,Object.keys()是JavaScript中一个非常实用且强大的方法,值得每一位开发者深入学习和掌握。

JavaScript object.keys
THE END
蜜芽
故事不长,也不难讲,四字概括,毫无意义。

相关推荐

JavaScript 中 instanceof 的作用及使用方法详解
在 JavaScript 的类型检查体系中,instanceof 是一个重要的操作符,用于判断一个对象是否属于某个构造函数的实例或其原型链上的类型。本文ZHANID工具网将系统讲解 instanceof...
2025-09-11 编程技术
503

JavaScript出现“undefined is not a function”错误的解决方法
在JavaScript开发中,TypeError: undefined is not a function 是最常见的运行时错误之一,通常表示代码尝试调用一个未定义(undefined)的值作为函数。本文ZHANID工具网将从...
2025-09-10 编程技术
518

JavaScript报错“Uncaught ReferenceError”如何解决?
在JavaScript开发中,“Uncaught ReferenceError”是常见且易混淆的错误类型。本文ZHANID工具网从错误本质、常见场景、排查步骤、解决方案四个维度,结合真实代码案例与调试技...
2025-09-09 编程技术
566

JavaScript面试题汇总:高频考点与答案解析
在前端开发领域,JavaScript作为核心语言,其面试题覆盖了从基础语法到高级特性的广泛范围。本文ZHANID工具网将系统梳理JavaScript高频面试考点,结合权威资料与典型案例,为...
2025-09-08 编程技术
478

JavaScript中严格模式(use strict)的作用与使用场景
JavaScript的灵活性既是其优势,也是开发者面临的挑战。非严格模式下,隐式全局变量、模糊的this绑定等特性容易导致难以调试的错误。为解决这些问题,ECMAScript 5(ES5)引入...
2025-09-04 编程技术
533

使用JavaScript开发一个简易计算器(附示例代码)
在Web开发领域,JavaScript因其灵活性和强大的交互能力成为实现动态功能的核心技术。本文ZHANID工具网将通过构建一个简易计算器,系统讲解如何利用HTML、CSS和JavaScript完成...
2025-09-03 编程技术
526