迭代器(iterator)原理

目录

1.iterator介绍   

2.itertor作用      

3.iterator的遍历原理


1.iterator介绍   

iterator是一种接口,为各种不同数据结构提供一种统一的访问机制,任何数据只要部署iterator接口,就可以完成遍历操作,

2.itertor作用      

 iterator的作用有三个:一是为各种数据结构,提供一个统一的,简便的访问接口;二是使得数据结构的成员能够按照某种次序排列,三是ES6创造了一种新的遍历命令for···of循环,iterator接口主要供for···of消费

3.iterator的遍历原理

(1) 创建一个指针对象,指向当前数据结构的起始位置,也就是说,遍历器本质上是一个指针对象

(2) 第一次调用指针对象的next 方法   可以将指针指向数据结构的第一个成员

(3) 第二次调用指针对象的next方法   指针对象将指向数据结构的第二个成员

(4) 不断调用指针对象的next方法, 直到它指向数据结构的结束位置,每一次调用next方法,都会返回数据结构的当前成员信息,具体来说就是返回一个包含valuedone  两个属性的对象其中value是当前成员的值,done属性是一个布尔值  ,表示遍历是否结束

模拟例子

var it = makeIterator(['a', 'b']);
it.next() // { value: "a", done: false }
it.next() // { value: "b", done: false }
it.next() // { value: undefined, done: true }
function makeIterator(array) {
  var nextIndex = 0;
  return {
    next: function() {
      return nextIndex < array.length ?
        {value: array[nextIndex++], done: false} :
        {value: undefined, done: true};
    }
  };
}

makeIterator是一个迭代器生成函数,作用就是返回一个遍历器对象,对数组['a','b']  执行这个函数

返回该数组的迭代器对象(即指针对象)

 2021字节跳动web工程师笔试题

第一题

[
{num: 12, city: ‘beijing’},
{num: 56, city: ‘shanghai’},
{num: 167, city: ‘guangzhou’},
{num: 23, city: ‘shenzhen’},
{num: 45, city: ‘caoxian’}
]
写一个方法实现把上面的数组转换成下面这种格式:
{beijing: 12, shanghai: 56,…}

 let obj = [
            {num: 12, city: 'beijing'},
            {num: 56, city: 'shanghai'},
            {num: 167, city: 'guangzhou'},
            {num: 23, city: 'shenzhen'},
            {num: 45, city: 'caoxian'}
                ]
            let res={}
            for(let i=0;i

遍历数组添加到对象就行了

        本周主要进行了复习,对JS基础  JS高级  ES6进行了回顾  剩余时间在学习Vue  加油!

你可能感兴趣的:(笔记,记录,javascript,前端)