记一道JavaScript面试题

问题: 如果我们使用JavaScript的”关联数组”,我们怎么计算”关联数组”的长度?

var counterArray = {A : 3,B : 4
};
counterArray["C"] = 1;

其实答案很简单,直接计算key的数量就可以了。

Object.keys(counterArray).length // Output 3

在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组

  • 传入对象,返回属性名
var obj = {'a':'123','b':'345'};
console.log(Object.keys(obj));  //['a','b']var obj1 = { 100: "a", 2: "b", 7: "c"};
console.log(Object.keys(obj1)); // console: ["2", "7", "100"]var obj2 = Object.create({}, { getFoo : { value : function () { return this.foo } } });
obj2.foo = 1;
console.log(Object.keys(obj2)); // console: ["foo"]

  • 传入字符串,返回索引
var str = 'ab1234';
console.log(Object.keys(obj));  //[0,1,2,3,4,5]

  • 构造函数 返回空数组或者属性名
    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"]

  • 数组 返回索引
    var arr = ["a", "b", "c"];console.log(Object.keys(arr)); // console: ["0", "1", "2"]

转载于:https://www.cnblogs.com/7qin/p/9726696.html

Object.keys方法之详解相关推荐

  1. Object.defineProperty方法(详解)

    OK,这一篇主要想说一下Object.defineProperty这个方法. 这个方法也是Vue数据双向绑定原理的常见面试题 所以也是有必要好好掌握的哦 首先我们知道JS中是支持面向对象编程的,也是有 ...

  2. Object.keys方法详解

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

  3. java condition详解_Java使用Condition控制线程通信的方法实例详解

    Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...

  4. python中new方法详解及_Python中new方法的详解

    new_ 方法是什么? __new__方法其实就是创建对象的方法 new()方法是在类准备将自身实例化时调用. 一个类可以有多个位置参数和多个命名参数,而在实例化开始之后,在调用 init()方法之前 ...

  5. mvc ajax提交html标签,Mvc提交表单的四种方法全程详解

    Mvc提交表单的四种方法全程详解 2019-01-05 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了Mvc提交表单的四种方法全程详解,编程之家小编觉得挺不错的 ...

  6. Java的JVM运行时栈结构和方法调用详解

    详细介绍了Java 的JVM的运行时栈结构,以及和方法调用详解,包括解析调用和分派调用. JVM对于方法的执行是基于栈的,方法调用--入栈,方法调用完毕--出栈,了解JVM的运行时栈结构,有助于我们更 ...

  7. java 拦截器顺序_Springmvc拦截器执行顺序及各方法作用详解

    实现HandlerInterceptor接口或者继承HandlerInterceptor的子类,比如Spring 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerInt ...

  8. JS 中 valueOf() 方法的详解

    JS 中 valueOf() 方法的详解 JavaScript 中的 valueOf() 方法用于返回指定对象的原始值,若对象没有原始值,则将返回对象本身.通常由JavaScript内部调用,而不是在 ...

  9. golang导入git包_使用go module导入本地包的方法教程详解

    go module 是Go1.11版本之后官方推出的版本管理工具,并且从 Go1.13 版本开始, go module 将是Go语言默认的依赖管理工具.到今天 Go1.14 版本推出之后 Go mod ...

最新文章

  1. (一)Python装饰器的通俗理解
  2. h5的语义化部分_Html5新增的语义化标签(部分)
  3. JavaScript与HTML交互——事件
  4. Ubuntu火狐浏览器无法输入简体中文的解决方案
  5. 北京工业大学微型计算机接口技术考试,汇编语言微机原理及接口技术期末试卷含答案...
  6. 【SQL语句】 - Ctrl+3 查询表属性的存储过程 [sp_select_talberowName]
  7. 剑指offer:字符串的排列
  8. 《编码的奥秘》记录(二)
  9. QT安装遇到的问题及解决
  10. Mac OSX安装MongoDB
  11. 抖音用什么编程语言_抖音app软件开发流程是什么,主要运用的开发工具以及语言是什么?...
  12. pdf 转 高清图片
  13. mevan 的常用命令和参数解释
  14. 绿卡日记:2020-11-20
  15. 影视剪辑,自学剪辑,视频剪辑7天学习计划
  16. 技术报告 | 罗汉堂:理解大数据:数字时代的数据和隐私2021.pdf(附下载链接)
  17. python下载批量图片
  18. info()函数与describe函数
  19. 当 SSR 遇上 Serverless,轻松实现页面瞬开
  20. julia简易教程——安装Julia+jupyter notebooks

热门文章

  1. 距离传感器控制灯泡代码_如何使用颜色传感器和超声波传感器检测障碍物和避障...
  2. 大数据与数据挖掘考试题_北京2020届中考物理出题策略大揭秘!
  3. 语义网所谓的“本体”的具体例子是什么?人工智能
  4. RuntimeError: Assertion cur_target 0 cur_target n_classes failed
  5. Python中常见字符串去除空格的方法总结
  6. Jieba分词原理与解析
  7. 梯度提升决策树(GBDT)与XGBoost、LightGBM
  8. Redis概述和基础
  9. 服务器技术综述(四)
  10. 画笔Paint的使用