angular forEach方法遍历源码解读
程序员文章站
2022-06-17 16:13:05
angular中提供了foreach()方法用于遍历对象或数组,供大家参考,具体内容如下
function foreach(obj, iterator, cont...
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);
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
-
C#使用foreach语句遍历堆栈(Stack)的方法
-
JavaScript for-in遍历,ES6的for-of遍历,可迭代对象的forEach()方法实例讲解
-
C#使用foreach遍历哈希表(hashtable)的方法
-
C#使用foreach语句遍历队列(Queue)的方法
-
C#使用foreach语句遍历二维数组的方法
-
C#中foreach语句使用break暂停遍历的方法
-
C#使用foreach语句简单遍历数组的方法
-
C#使用foreach语句遍历集合类型的方法
-
PHP 数组遍历方法大全(foreach,list,each)