如何找到对象的键?

2023-11-24

我知道在 JavaScript 中,objects作为哈希值的两倍,但我一直无法找到内置函数来获取密钥:

var h = {a:'b', c:'d'};

我想要类似的东西

var k = h.keys() ; // k = ['a', 'c'];

自己编写一个函数来迭代项目并将键添加到我返回的数组中很简单,但是有没有一种标准的更干净的方法来做到这一点?

我一直觉得它一定是一个简单的内置函数,我错过了,但我找不到它!


现代 JavaScript (ECMAScript 5) 中有一个函数叫做Object.keys执行此操作:

var obj = { "a" : 1, "b" : 2, "c" : 3};
alert(Object.keys(obj)); // will output ["a", "b", "c"]

可以找到兼容性详细信息here.

On the Mozilla 网站还有一个向后兼容的片段:

if(!Object.keys) Object.keys = function(o){
   if (o !== Object(o))
      throw new TypeError('Object.keys called on non-object');
   var ret=[],p;
   for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
   return ret;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到对象的键? 的相关文章

  • 无法在地图循环中访问 Axios 调用的值

    我有一个 javascript 对象 其 ID 对应于一组画廊 我使用地图循环遍历它 在每个循环中 我都会进行 axios 调用来获取当前 id 的图库 最后 我需要一个包含所有画廊内容的数组 问题是地图循环完成后我无法访问数据 当我 co
  • 节点遗留 url.parse 已弃用,用什么代替?

    require url parse someurl com page 已被仅弃用 并且我们严格的 linter 对此不满意 我尝试用互联网建议的内容替换我们的代码中的它new URL someurl com page 在大多数情况下都有效
  • Typescript:匿名函数内可能未定义的变量

    太长了 在匿名函数中使用变量之前检查变量仍然 TS 警告变量可能未定义 在下面的代码示例中变量baseDirId检查是否未定义 然后传递给 array map 函数 但 TS 发出警告baseDirId可以是未定义的 Typescript
  • 为什么 Promise `.then` 方法的回调是反模式

    我在 StackOverflow 上看到了答案 人们建议为 AngularJS 服务提供回调函数 app controller tokenCtrl function scope tokenService tokenService getTo
  • React Native 无法访问 Cloud Firestore 后端

    我之前使用的是 firebase 实时数据库 但现在想切换到 Cloud Firestore 但即使经过身份验证 也会收到以下错误 我目前正在使用 Android Simulator 尝试禁用我的实时数据库 但找不到解决方案 Firebas
  • 用更好的模式替换开关(Javascript)

    我必须升级我的应用程序以根据用户类型和角色属性显示页面 目前 我使用一个简单的 switch 语句来根据用户类型来执行此操作 例如 switch type case a return CONSTANT ONE case b return C
  • 解释一下这个令人困惑的 dojo 教程声明语法

    我正在阅读使用的语法道场的声明 http dojotoolkit org documentation tutorials 1 8 declare 用于班级创建 描述很混乱 The declare function is defined in
  • 无需重定向的 HTML 页面提交

    有没有什么方法可以在不使用ajax的情况下提交html表单而无需从当前页面重定向 你可以设置一个target 为您form 这样您就可以将表单提交到新选项卡 target blank 或一个小的 隐藏的iframe target nameo
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • 如何将焦点设置在 BootStrap 中的第一个输入字段上? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将焦点设置到独立于 id 的 HTML 表单中的第一个输入元素 https stackoverflow com questions 277544 how to set the focus to t
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • WebpackError:ReferenceError:Gatsby 上未定义窗口

    我已经在互联网上进行了大量搜索 但无法解决这个问题 我正在使用 Gasby 开发静态页面 但遇到此错误 WebpackError ReferenceError window is not defined 我的线索是 这与我正在使用的引导 模
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 加载 Angular 库时,IE9 和 IE10 中出现 Angular JS“SCRIPT5007:预期对象”错误

    我正在开发一个 AngularJS 应用程序 该应用程序应在 Firefox IE 9 和 IE 10 上运行 我使用最新版本的 angularjs 库 现在是 1 3 15 服务器端是在JavaEE平台上用Java编写的 服务器运行在Gl
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • 如何在eclipse本地安装jdt.core?

    我需要在本地安装 eclipse JDT Core 插件 例如使用 site xml 等下载文件 而不是由于工作中可怕的防火墙而远程安装它 谁能建议在哪里下载它以便我可以进行本地安装 谢谢 我假设您正在使用 Aptana 就像 VonC 所
  • 如何在 Eclipse 中添加 XML 可绘制对象

    好吧 伙计们 我在这里有点堆积 根据官方文档 Google 表示 一旦您在 XML 中定义了 Drawable 请将文件保存在项目的 res drawable 目录中 是将 XML 可绘制对象添加到项目中的方法 但是当我创建项目时 ADT
  • 与/外键引用映射多对多关系

    对于精通 EF 用户来说 这应该是一个简单的问题 我 在我的脑海中 有以下表之间关系的模式 FooBar Foo Bar FooId PK FK Id PK Id PK BarId PK FK BarId FK Name IsRead Na
  • decltype( constexpr 变量)

    为什么 constexpr 变量的 decltype 失败 include
  • 跨平台 Xamarin Forms 的 UserControl

    我已经寻找了很长时间 但仍然没有找到一种方法来为跨平台 Xamarin Forms 创建像 UserControls 这样的 WPF 这还可以吗 我将 Xamarin 与 Visual Studio 2013 结合使用 这是一个 XAML
  • Emacs,如何更改 M-x shell 中的某些颜色?

    我使用 Emacs 24 并希望在 shell 模式下更改目录和文件的颜色 ls命令 理想情况下 取决于文件的权限 我怎样才能做到这一点 我尝试玩 setq ansi color names vector black red green y
  • 如何比较 SQL Server 中的日期时间与仅日期

    Select from User U where U DateCreated 2014 02 07 但在数据库中创建了用户2014 02 07 12 30 47 220当我只放 2014 02 07 它不显示任何数据 不要试图做这样的事情
  • 为什么 boost::is_same::value 等于 false?

    我正在努力通过 C 模板元编程 作者 Abrahams 和 Gurtovoy 这实际上并不在第二章中 而是我在第一个练习 2 10 2 0 中尝试过的 这让我感到困惑 include
  • 如何在awk中跳过目录?

    假设我有以下文件和目录结构 tree a b dir c 1 directory 3 files 也就是两个文件a and b与目录一起dir 其中另一个文件c stands 我想处理所有文件awk GNU Awk 4 1 1 确切地说 所
  • 如何检测我的程序可用的堆栈空间量?

    我的 Win32 C 应用程序充当 RPC 服务器 它具有一组用于处理请求的函数 并且 RPC 运行时创建一个单独的线程并调用该线程中的一个函数 在我的函数中 我有一个 std auto ptr 用于控制编译时已知大小的堆分配的 char
  • 正在初始化颤动。这可能需要几分钟的时间

    第一篇文章 抱歉 新手帖子 我已经在 Google 和 StackOverFlow 上进行了搜索 以解决 VSCode 上的上述查询 但没有任何人可以帮助解决此错误 我将非常感激 它只是不断加载以下消息 正在初始化 Flutter 这可能需
  • 为函数体内的 dplyr 参数提供多组变量

    这是数据 library tidyverse data lt tibble tribble var1 var2 var3 var4 var5 a d g hello 1L a d h hello 2L b e h k 4L b e h k
  • SELECT MAX(... 在 PHP/MYSQL 中不返回任何内容

    这是表结构 Table test PAGE CONTENT 1 ABC 2 DEF 3 GHI PAGE是具有数据类型的主节点INT 11 它不会自动递增 CONTENT 的数据类型TEXT 在 PHP 中我做 result mysql q
  • 如何防止数据成员被序列化

    我只想反序列化某个数据成员 而不对其进行序列化 我知道我可以设置 EmitDefaultValue false 并将该值设置为 null 但我也不想更改数据成员的值 还有其他方法可以实现此目的吗 序列化器是 DataContractSeri
  • 通过 Masters 的脚本控制台在所有 Jenkins 从机上运行远程命令

    我想运行相同的 shell 命令 非常简单的 shell 命令 例如ls 在所有 UNIX 从站上 通过使用主站的脚本控制台连接到主站 我如何使用 groovy 来做到这一点 想做这样的事情 显示有关节点的信息但我不想显示信息 而是想在每个
  • 在 sweetalert2 内容中使用 vue 组件

    我有几个简单的甜蜜警报2a 中的情态动词Vue项目 我想在警报中使用自定义组件 例如
  • Android 低功耗蓝牙:characteristic.getPermissions() 返回 0?

    我正在编写一个Android BLE应用程序 我正在尝试获取某个特性的权限 我已经设法使用characteristic getProperties 获取特征属性 并且它返回一个非零值 但是 当我使用getPermission 方法时 它返回
  • FPDF 如何强制分页

    我正在使用 FPDF 1 7 将 TXT 文件转换为 PDF 我想在 PDF 产品中强制分页 使用 php 创建文本文件 并成功使用回车符 r 但我无法让换页符 f 出现在 PDF 中 是否有另一种方法可以通过更改原始文本文件或 php 代
  • 致命错误:无法重新声明类数据库

    我收到胎儿错误消息 致命错误 无法在第 3 行的 C wamp www pets new lib database php 中重新声明类数据库 require once lib message php require once lib us
  • 如何找到对象的键?

    我知道在 JavaScript 中 objects作为哈希值的两倍 但我一直无法找到内置函数来获取密钥 var h a b c d 我想要类似的东西 var k h keys k a c 自己编写一个函数来迭代项目并将键添加到我返回的数组中