当前位置: 首页 > 编程笔记 >

angular forEach方法遍历源码解读

衡修洁
2023-03-14
本文向大家介绍angular forEach方法遍历源码解读,包括了angular forEach方法遍历源码解读的使用技巧和注意事项,需要的朋友参考一下

angular中提供了forEach()方法用于遍历对象或数组,供大家参考,具体内容如下

function forEach(obj, iterator, context) {
 var key, length;
 if (obj) {
  if (isFunction(obj)) {
   for (key in obj) {
    // Need to check if hasOwnProperty exists,
    // as on IE8 the result of querySelectorAll is an object without a hasOwnProperty function
    if (key != 'prototype' && key != 'length' && key != 'name' && (!obj.hasOwnProperty || obj.hasOwnProperty(key))) {
     iterator.call(context, obj[key], key, obj);
    }
   }
  } else if (isArray(obj) || isArrayLike(obj)) {
   var isPrimitive = typeof obj !== 'object';
   for (key = 0, length = obj.length; key < length; key++) {
    if (isPrimitive || key in obj) {
     iterator.call(context, obj[key], key, obj);
    }
   }
  } else if (obj.forEach && obj.forEach !== forEach) {
    obj.forEach(iterator, context, obj);
  } else if (isBlankObject(obj)) {
   // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty
   for (key in obj) {
    iterator.call(context, obj[key], key, obj);
   }
  } else if (typeof obj.hasOwnProperty === 'function') {
   // Slow path for objects inheriting Object.prototype, hasOwnProperty check needed
   for (key in obj) {
    if (obj.hasOwnProperty(key)) {
     iterator.call(context, obj[key], key, obj);
    }
   }
  } else {
   // Slow path for objects which do not have a method `hasOwnProperty`
   for (key in obj) {
    if (hasOwnProperty.call(obj, key)) {
     iterator.call(context, obj[key], key, obj);
    }
   }
  }
 }
 return obj;
}

官方描述:

forEach方法可以遍历数组或对象,函数有三个参数为别为:value,key,obj。
1)、value value指当遍历的对象或数组元素当前的值
2)、 key 是对象属性的的key或者数组的索引
3)、 obj obj即被遍历的对象或数组本身

示例:

   var values = {name: 'misko', gender: 'male'};
   var log = [];
   angular.forEach(values, function(value, key) {
    this.push(key + ': ' + value);
   }, log);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍jQuery 遍历map()方法详解,包括了jQuery 遍历map()方法详解的使用技巧和注意事项,需要的朋友参考一下 一、定义和用法 map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。 二、语法 三、详细说明 由于返回值是 jQuery 封装的数组,使用 get() 来处理返回的对象以得到基础的数组 四、案例: 总结 以上就是这篇文章的

  • 主要内容:jQuery 遍历方法jQuery 遍历方法 方法 描述 add() 把元素添加到匹配元素的集合中 addBack() 把之前的元素集添加到当前集合中 andSelf() 在版本 1.8 中被废弃。addBack() 的别名 children() 返回被选元素的所有直接子元素 closest() 返回被选元素的第一个祖先元素 contents() 返回被选元素的所有直接子元素(包含文本和注释节点) each() 为每个

  • 本文向大家介绍jquery 遍历数组 each 方法详解,包括了jquery 遍历数组 each 方法详解的使用技巧和注意事项,需要的朋友参考一下 JQuery拿取对象的方式 $(‘#id') :通过元素的id $(‘tagName') : 通过元素的标签名 $(‘tagName tagName') : 通过元素的标签名,eg: $(‘ul li') $(‘tagName#id): 通过元素的id

  • 问题内容: 考虑到这一节课;我将如何迭代其中包含的方法? 我尝试过的以下操作均未成功: 问题答案: 您可以在原型上使用Object.getOwnPropertyNames:

  • 通过一次执行一行代码或一个函数,您可以观察数据和页面中的更改,来确切了解发生了什么。您还可以修改脚本中使用的数据值,甚至可以修改脚本本身。 为什么这个变量值为20而不是30?为什么这行代码似乎没有任何效果?为什么这个标志为真时应该是假的?每个开发人员都面临着这些问题,并逐步通过代码找出来。 设置断点后,返回页面并正常使用,直到运行到断点,将暂停页面上的所有JavaScript,焦点转移到DevTo

  • 本文向大家介绍Java源码解析Integer方法解读,包括了Java源码解析Integer方法解读的使用技巧和注意事项,需要的朋友参考一下 toUnsignedString方法解读 看到Integer中有这样的一个方法把int转为Unsigned类型的字符串,但是有几个点不是很清楚,经过查询资料弄懂了,解读如下: 这里的参数shift是代表的进制,如果是二进制的话shift是2,八进制那么就是8,