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"]

扩展

Object.values()

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

Object.entries()

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

Object.keys()的详解和用法相关推荐

  1. Object.keys方法详解

    Object.keys方法详解 一.语法 Object.keys(obj) 参数:要返回的对象 返回值:所有可枚举属性的字符串 二.对象处理,返回枚举属性数组 let obj = { name:&qu ...

  2. php object keys_原生js中Object.keys方法详解

    实际开发中,有时需要知道对象的所有属性,原生js提供了一个方法Object.keys(). Object.keys(obj)返回的是一个数组,该数组的所有元素都是字符串.这些元素是来自于给定的obj可 ...

  3. Object.assign()的详解和用法

    Object.assign()的用法 基本用法 Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). const target = ...

  4. 最全ES6详解及用法

    最全ES6详解及用法 前言 babel babel使用方法 变量的定义 let.const this 和作用域 do 顶层对象 global对象 import class JS中的原型 原型语言 pr ...

  5. 【ADB 操作命令详解及用法大全(非常全)】

    ADB操作命令详解及用法大全 一.ADB是什么?   ADB,即 Android Debug Bridge 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供 ...

  6. Symbol 详解与用法

    目录 前言: 一.什么是 Symbol? 二.Symbol 的特点 三.Symbol 的使用 总结: 前言: ES5中对象的属性名都是字符串,容易造成重名,污染环境 一.什么是 Symbol? Sym ...

  7. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  8. windows下创建进程,CreateProcess()详解及用法

    windows下想要创建一个子进程不如linux的fork函数来得方便,通过CreateProcess函数创建一个新的进程,函数的定义如下 [cpp]  view plain copy BOOL Cr ...

  9. OpenCV Mat类详解和用法

    OpenCV Mat类详解和用法 我们有多种方法可以获得从现实世界的数字图像:数码相机.扫描仪.计算机体层摄影或磁共振成像就是其中的几种.在每种情况下我们(人类)看到了什么是图像.但是,转换图像到我们 ...

最新文章

  1. 024_Word知识汇总
  2. PHP接收上传的文件
  3. JavaScript学习笔记(备忘录)
  4. Google Project Zero挖洞经验整理
  5. 小目标检测、图像分类、图像识别等开源数据集汇总
  6. Spring框架中的SpringFactoriesLoader
  7. float型数据与字节数组的转化
  8. 解析对偶理论与对偶单纯性法
  9. 今天来谈谈CSS有哪些布局
  10. easyui下datagrid列单独赋值
  11. python进阶10并发之六并行化改造
  12. linux jzmq编译,Linux下ps aux解释
  13. 大数据项目实战数仓4——总纲
  14. 安卓自定义列表dialog
  15. java三级 高级证书6_java web 学习 --第六天(Java三级考试)
  16. kaggle数据集下载
  17. (JButton) e.getSource();是什么意思
  18. html添加悬浮图片,HTML5和jQuery制作网页灰度图片悬浮效果_js
  19. 创建网页文件html,HTML快速入门之创建网页文件
  20. 经验总结1—数据核对

热门文章

  1. 作为一名程序员该如何向别人提问题
  2. C语言 数组索引负值的情况,以及C语言的问号表达式
  3. 7-9 九宫格输入法
  4. 【电工技术】期末复习题
  5. 微信小程序开发学习笔记2——安心食疗
  6. matlab彩色碎片拼接与复原_碎片拼接复原技术研究
  7. 圆心科技冲刺港交所上市:收入主要靠卖药,毛利率仅在10%上下
  8. 「五度易链」助力园区招商,引优质企业 精准甄别 全程管理,促产业高质发展
  9. CF1368E Ski Accidents
  10. Tutorial教程:知错就改,错了就罚,论训练深度学习如何选择损失函数