美文网首页
数组其他问题

数组其他问题

作者: 岚平果 | 来源:发表于2021-02-26 09:18 被阅读0次

    1. 数组里面有10万个数据,取第一个元素和第10万个元素的时间相差多少

    答:数组可以直接根据索引取的对应的元素,所以不管取哪个位置的元素的时间消耗时间几乎一致,
    差异可以忽略不计
    

    2. for…in 与 for…of 的区别

    1. 都可以遍历数组,for in 返回数组的下标(key);for of 返回数组的元素;
      const arr1 = ['a', 'b', 'c'];
      for (let i in arr1) {
        console.log(i)  // 0, 1, 2
      }
          
      const arr2 = ['a', 'b', 'c'];
      for (let i of arr2) {
        console.log(i) // a, b, c
      }
    ………………………………………………………………………………………………………………………………………………………………………………………………………………
    2.  遍历对象  for in 遍历获取对象 key 值;  for of 报错;
        const json = {"a": 1, "b": 2, "c": 3};
        for (let i in json) {
          console.log(i) // a, b, c
        }
        for (let i of json) {
          console.log(i)     // 数据格式错误
        }
    
    3. 给数组手动添加属性,   for in 循环可以遍历出 name 这个添加属性的键名
        const arr3 = ['a', 'b'];
        arr3.name = 'c';
        for (let i in arr3) {
            console.log(i) // 0, 1, name
        }
    
    4. for in 的特点:
        a. for … in 循环返回的值都是数据结构的 键值名。
        b. 遍历对象返回的对象的key值;
        c. 遍历数组返回的数组的下标(key)。
        d. for … in 循环不仅可以遍历数字键名,还会遍历原型上的key值和手动添加的其他键;
        e. 特别情况下, for … in 循环会以任意的顺序遍历键名
        f. 总结一句: for in 循环特别适合遍历对象。
    
    5. for of 特点:
        a. for of 循环用来获取一对键值对中的值,而 for in 获取的是 键名 
        b. 一个数据结构只要部署了 Symbol.iterator 属性, 就被视为具有 iterator 接口, 
        就可以使用 for of循环。
        例 3 这个对象,没有 Symbol.iterator这个属性,所以使用 for of会报json is not iterable
    c. for of 不同与 forEach, 它可以与 break、continue 和 return 配合使用,
        也就是说 for of 循环可以随时退出循环。
    
    6. 我也想让对象可以使用 for of 循环怎么办? 使用 Object.keys() 获取对象的 key 值集合后,
       再使用 for of
       const obj = {a: 'x', b: 'y'};
       for (let i of Object.keys(obj)) {
          console.log(i)   // a, b
        }
    

    相关文章

      网友评论

          本文标题:数组其他问题

          本文链接:https://www.haomeiwen.com/subject/mtesfltx.html