js keys方法和foreach方法区别
keys和foreach都有遍历对象的功能,但他们可以遍历的对象类型是不一样的,foreach是数组对象的方法,而keys是Object对象的方法。换句话说,foreach只能数组对象使用,而keys任何对象都能使用。
1.Object.keys
其实从字面我们就可以看出来keys代表的是键值对中的键,所以keys的作用是遍历对象中属性的键,以数组的形式返回,下面是几个具体的例子
var a = {
name: "lin",
age: "10岁"
};
var b = {
2: "lin",
1: 10
};
var c = {
sayName: function () {
console.log(this.name);
},
2: "lin",
1: "10岁"
};
var d = ["lin", 10, "man"];
console.log(Object.keys(a)); //["name", "age"]
console.log(Object.keys(b)); //[1, 2], 可以看到,当键为数字时,keys方法会自动帮我们从小到大排序
console.log(Object.keys(c)); //[1, 2, sayName], 可以看到,当键为数字时,keys方法会自动帮我们从小到大排序,并且把键为字符串的排到最后
console.log(Object.keys(d)); //[0, 1, 2],其实就是返回数组的下标
2.[].foreach
foreach,也是遍历的作用,但是只能数组对象使用,当一个非数组调用时会抛出错误,下面是几个常见的例子
var a = ["lin", 10, "man"];
var b = {
name: "lin",
age: "10岁",
sex: "man"
}
a.forEach(function (value, index) { //控制台打印:0的值为lin,1的值为10,2的值为man
console.log(index + "的值为" + value);
})
b.forEach(function (value, index) { //报错,因为b不是数组对象,无法使用foreach
console.log(index + "的值为" + value);
})
3.[].foreach和JQuery的each区别:
[].forEach(function(value, index, array) {}); 注意foreach第一个参数为值,第二个参数为键,第三个参数为执行的数组
$.(function(index, value, array) {}); 注意each第一个参数为键,第二个参数为值,第三个参数为执行的数组,类似的$.map也是如此 js keys方法和foreach方法区别的更多相关文章
- JS中Date对象getYear()方法和getFullYear()方法区别
释义 JavaScript getFullYear() 方法 getFullYear() 方法可返回一个表示年份的 4 位数字. getYear() 语法 dateObject.getFullYear ...
- jQuery中bind方法和live方法区别解析
Javascript中的事件有它的独特性,有默认的执行事件,例如冒泡就是其中的一个.在很多比较复杂的应用程序中,停止事件的冒泡或捕获在程序开发当中是十分有用的,而在IE中有它的独特方式来阻止事件的冒泡 ...
- thinkphp3.2.3中U()方法和redirect()方法区别
今天博主看3.1的教程,学着3.2,就遇到了这个坑,怎么就是不跳转呢,很纳闷!! 在thinkphp3.1 中 U()方法是可以执行跳转的(看视频教程里面是可以的,博主没有测试过). 但是在think ...
- java中equals方法和contentEquals方法区别
java中,String类里提供了两种字符串的比较方式(算上“==”应该是三种) String line1 = new String("0123456789"); String l ...
- python list中append()方法和extend()方法区别
共同点 只能作用于list类型(不能作用于tuple等其他类型) 单参数限制(不支持多参数) 不同点 list.append(object) 向列表中添加一个对象object. 使用append的时候 ...
- 线程的sleep()方法和yield()方法区别
1.sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会 2.yield()方法只会给相同优先级或更高优先级的线程以运行的机会 3.线程执行sleep()方法后 ...
- Js slice()方法和splice()方法
1.slice(start,end) 从已有的数组中返回选定元素,参数start必填,end选填 <script> delArray(); function delArray(){ var ...
- GET 方法和 POST方法区别
两种 HTTP 请求方法:GET 和 POST 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST. GET - 从指定的资源请求数据. POST - 向指定的资源提交 ...
- hibernate的get方法和load方法区别
读者需注意:Hibernate版本不同,运行机制不太一样,以下是hibernate3.x作为讲解 get方法: Hibernate会确认一下该id对应的数据是否存在,首先在session缓存中查找,然 ...
随机推荐
- ecsmart的开发经历
ecsmart是ecshop的产品之一,是2015年发布的一套系统.关于它的介绍请到官网去了解,也可以百度 “商之翼” “ecsmart” 1.ecsmart分别在pc.mobile.app三个方面都 ...
- js 变量、作用域和内存问题
基本类型和引用类型 5种基本类型:undefined.null.boolean.number.string 引用类型:由多个值构成的对象 属性 引用类型可以动态添加属性,而基本类型不可以 var p ...
- chattr 命令详解
chattr 作用: 改变文件属性,这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有一下8种模式 模式: a: 让文件或目录仅供附加用途 b: 不更新文件或目录的最后存取时间 ...
- Windows zip安装MySQL
1. mysqld初始化时my.ini的第二个默认位置是%windir%/my.ini rem 1.查看此变量对应的目录,在此目录下编辑 my.ini,mysqld会自动找到 echo %WINDIR ...
- 【bird-java】bird-java概述
bird-java是以dubbo为基础的分布式服务框架,专注于业务开发,提炼后台应用中的经典业务场景,大幅减少开发编码量. 技术选型 基础框架:spring 服务调度:dubbo web层:sprin ...
- mysql commit 和 rollback
转自:http://blog.csdn.net/ying_593254979/article/details/12134629 SQL 语言类型 从功能上划分,SQL 语言可以分为DDL,DML和DC ...
- Xposed 学习笔记
Xposed框架用法 1.配置AndroidManifest.xml <meta-data android:name="xposedmodule" android:value ...
- 不会PS如何自制简单线条、任意填充色的小图标
最近在做H5的开发中,需要用到一些简单的小图标,百度出来的图片,总是或多或少差了一些颜色.于是准备自己制作图片,PS是不会的,学习以及软件安装太费时,于是就准备用常见的软件来试着做一做. 在尝试了 w ...
- linux下一键安装redis并设置为后台进程及开机启动
1.下载适合你的版本的redis(下载页面https://redis.io/download),我下载的是4.0.6版本 wget http://download.redis.io/releases/ ...
- webapi框架搭建-依赖注入之autofac
前言 c#的依赖注入框架有unity.autofac,两个博主都用过,感觉unity比较简单而autofac的功能相对更丰富(自然也更复杂一点),本篇将基于前几篇已经创建好的webapi项目,引入au ...