cocos JS cc.each循环遍历对象

有了它,妈妈再也不用担心我的数组会越界啦!!

each()方法能使DOM循环结构简洁,不容易出错。each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组、多维数组、DOM, JSON 等等
在javaScript开发过程中使用$each可以大大的减轻我们的工作量。

下面提一下each的几种常用的用法

each处理一维数组

var arr1 = [ "aaa", "bbb", "ccc" ];      
  cc.each(arr1, function(i,val){      
      alert(i);   
      alert(val);
  });

alert(i)将输出0,1,2
alert(val)将输出aaa,bbb,ccc

each处理二维数组

  var arr2 = [[‘a‘, ‘aa‘, ‘aaa‘], [‘b‘, ‘bb‘, ‘bbb‘], [‘c‘, ‘cc‘, ‘ccc‘]]      
  cc.each(arr, function(i, item){      
      alert(i);   
      alert(item);      
  });

arr2为一个二维数组,item相当于取这二维数组中的每一个数组。
item[0]相对于取每一个一维数组里的第一个值   
alert(i)将输出为0,1,2,因为这二维数组含有3个数组元素
alert(item)将输出为  [‘a‘, ‘aa‘, ‘aaa‘],[‘b‘, ‘bb‘, ‘bbb‘],[‘c‘, ‘cc‘, ‘ccc‘]

对此二位数组的处理稍作变更之后

var arr = [[‘a‘, ‘aa‘, ‘aaa‘], [‘b‘, ‘bb‘, ‘bbb‘], [‘c‘, ‘cc‘, ‘ccc‘]]      
   cc.each(arr, function(i, item){      
        cc.each(item,function(j,val){
            alert(j);
            alert(val);
     }); 
});

alert(j)将输出为0,1,2,0,1,2,0,1,2

alert(val)将输出为a,aa,aaa,b,bb,bbb,c,cc,ccc

each处理json数据,这个each就有更厉害了,能循环每一个属性

  var obj = { one:1, two:2, three:3};      
   cc.each(obj, function(key, val) {      
        alert(key);   
        alert(val);      
   });

这里alert(key)将输出one two three
alert(val)将输出one,1,two,2,three,3
这边为何key不是数字而是属性呢,因为json格式内是一组无序的属性-值,既然无序,又何来数字呢。
而这个val等同于obj[key]

jquery会自动根据传入的元素进行判断,然后在根据判断结果采取apply还是call方法的处理。在fn的实现中,可以直接采用this指针引用数组或是对象的子元素。

1.obj对象是数组

each方法会对数组中子元素的逐个进行fn函数调用,直至调用某个子元素返回的结果为false为止,也就是说,我们可以在提供的fn函数进行处理,使之满足一定条件后就退出each方法调用。当each方法提供了arg参数时,fn函数调用传入的参数为arg,否则为:子元素索引,子元素本身

2.obj 对象不是数组

该方法同1的最大区别是:fn方法会被逐次不考虑返回值的进行进行。换句话说,obj对象的所有属性都会被fn方法进行调用,即使fn函数返回false。调用传入的参数同1类似。

时间: 2024-12-16 17:03:45

cocos JS cc.each循环遍历对象的相关文章

cocos JS 几种循环遍历对象的比较

通常我们会用循环的方式来遍历数组.但是循环是 导致js 性能问题的原因之一.一般我们会采用下几种方式来进行数组的遍历: 方式1: for in 循环: var arr = [1,2,3,4,5]; var obj = { a : 1, b : 2, c : 3 }; for( var item in arr|obj ){ fn(item){ // do sth with arr[item]; //do sth wtih obj[item]; }; } 这里的 item: array 的索引值,对

js for in循环遍历对象,获取key:value值

var testObj = { 'a':'111', 'b':'222', 'c':'333', 'd':'444'}for(var i in testObj){ console.log(i); //a,b,c,d}for(var i in testObj){ console.log(testObj[i]); //111,222,333,444 原文地址:https://www.cnblogs.com/Fourteen-Y/p/10487813.html

for/in 循环遍历对象的属性

for/in 语句循环遍历对象的属性. js中获取key得到某对象中相对应的value的方法:obj.key js中根据动态key得到某对象中相对应的value的方法有二: 一.var key = "name1";var value = obj[key]; 二.var key = "name1";var value = eval("obj."+key); JS代码: var obj={"name":"wjy"

js 使用for循环遍历数组

今天写个无聊的东西!for循环的使用!如下:定义a数组,b为伪数组! var a = [1,2,3,0,5,4]; var b = document.getElementsByTagName('li'); //[<li>1</li>,<li>2</li>,<li>3</li>,<li>4</li>,<li>5</li>] 第一种:错误型! for ( var i = 0; i <

JS完成页面跳转并传参的方法|附加:循环遍历对象

此方法只能传递较少参数 方法如下: <a href='page/index.html'>跳转</a> 以上是正常写法,如果要传参按一下写法: <!--参数写在?后面,多个参数用&隔开,下面传的参数为name=lemon,age=18--> <a href='page/index.html?name=lemon&age=18'></a> 当跳转到页面的时候这个页面的地址栏就会跟你写的那个一样,这时候你只需要获取地址栏的内容并进行采取

javaScript for in循环遍历对象

for循环常被我们用来遍历数组,而如何遍历对象呢? 这时就需要用到for in循环了 写一个遍历对象名简写如下: for(var xxx in ooo){console.log(xxx)} 其中xxx是由用户自定名称,即指向每次遍历到的对象的指针 ooo是要遍历的对象,现把先前写的对象哪来遍历一下,代码 如下: 1 Person.prototype.Lname = 'xiaohuang'; 2 Person.prototype.modd = 'unhappy'; 3 function Perso

js 的each()方法遍历对象和数组

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <script src="../lib/jquery-1.8.3.min.js" ></script> <script type="

JS/jQuery 遍历对象属性

Javascript For/In 循环: 循环遍历对象的属性 var person={fname:"John",lname:"Doe",age:25}; for (x in person) { txt=txt + person[x]; } 结果:JohnDoe25 jQuery jQuery.each() 遍历对象属性 var arr = ["one", "two", "three", "fou

手写js代码(一)javascript数组循环遍历之forEach

注:原文地址http://blog.csdn.net/oscar999/article/details/8671546 我这里是仿照学习! 1.js的数组循环遍历 ①数组的遍历首先想到的是for()循环语句 var arr = ['summer','i','love', 'you']; for(var i=0, length=arr.length; i<length; i++) { alert(arr[i]); } ②其次,比较简单的方法 forEach() FireFox 和Chrome的Ar