重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

es6新增的遍历方法是什么

这篇文章主要介绍es6新增的遍历方法是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

为涞水等地区用户提供了全套网页设计制作服务,及涞水网站建设行业解决方案。主营业务为网站制作、成都做网站、涞水网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

新增的遍历方法有:1、findIndex(),可遍历数组,查找匹配的元素;2、find(),可遍历数组,查找第一个匹配的元素;3、entries(),对键值对进行遍历;4、keys(),对键名进行遍历;5、values(),对键值进行遍历。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

ES5中常用的10种遍历方法:

1、原始的for循环语句

2、Array.prototype.forEach数组对象内置方法

3、Array.prototype.map数组对象内置方法

4、Array.prototype.filter数组对象内置方法

5、Array.prototype.reduce数组对象内置方法

6、Array.prototype.some数组对象内置方法

7、Array.prototype.every数组对象内置方法

8、Array.prototype.indexOf数组对象内置方法

9、Array.prototype.lastIndexOf数组对象内置方法

10、for...in循环语句

es6新增的遍历方法

findIndex(callback [, thisArg])查找数组中匹配的元素

找到一个就返回匹配的元素的下标,没找到就返回-1。
let arr = [1, 2, 3, 4, 5, 6]// 此时我们找大于2的数
let newArr = arr.findIndex(val => {return val > 2})
console.log(newArr) // 2

find(fn(callback [, thisArg])

查找数组中匹配的元素,找到一个就返回匹配的元素,没找到就返回undefined。

注:下面的例子相对于需求是一个错误的示范,因为我们要找出大于2的数,当找到匹配到3时,满足条件,函数就会停止。

例:

let arr = [1, 2, 3, 4, 5, 6]
// 此时我们找大于2的数
let newArr = arr.find(val => {
    return val > 2
})
console.log(newArr) // 3

entries() , keys() 和 values()

ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组和对象。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。

for (let index of ['a', 'b'].keys()) {
  console.log(index);
}
// 0
// 1

for (let elem of ['a', 'b'].values()) {
  console.log(elem);
}
// 'a'
// 'b'

for (let [index, elem] of ['a', 'b'].entries()) {
  console.log(index, elem);
}
// 0 "a"
// 1 "b"

如果不使用for...of循环,可以手动调用遍历器对象的next方法,进行遍历。

let letter = ['a', 'b', 'c'];  
let entries = letter.entries();  
console.log(entries.next().value); // [0, 'a']  
console.log(entries.next().value); // [1, 'b']  
console.log(entries.next().value); // [2, 'c']

以上是“es6新增的遍历方法是什么”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


当前文章:es6新增的遍历方法是什么
本文网址:http://cqcxhl.cn/article/jogsdp.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP