8.25疑难解答

1:冒泡排序?
   比较相邻的两个数,如果后面的比前面的小,把小的放在前面。
var arr = [5, 4, 3, 2, 1];
var temp = 0;
for (var i = 0; i < arr.length; i++)
{
for (var j = 0; j < arr.length - i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
cc.log(arr.tostring);


2:bind()方法?
   bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数.
   bind主要是为了改变函数内部的this指向


3:数组的复制?
  var arr = ["One","Two","Three"];
  var arrto = arr;
  arrto[1] = "test";
  cc.log("数组的原始值:" + arr.tostring);//Export:数组的原始值:One,test,Three
  cc.log("数组的新值:" + arrto.tostring);//Export:数组的新值:One,test,Three
   


4:什么是数组的深复制? 
   就是在第一数组的元素和长度不变的情况下,用另外一个数组存储第一个数组里的元素,对第二个数组进行修改时不会影响到第一个数组。
   使用slice()进行复制,因为slice()返回也是数组。
var arr1 = [1,2,3]; 
var arr2=[]; 
arr2 = arr1.slice(); 
cc.log(arr2.tostring); //返回1、2、3 
 注意concat()返回的并不是调用函数的数组,而是一个新的数组,所以可以利用这一点进行复制。
var arr1 = [1,2,3]; 
var arr2=[]; 
arr2 = arr1.concat(); 
cc.log(arr2.tostring); //返回1、2、3 


5:如何复制一个对象?
  很时候复制一个对象的时候都是直接用"=",因为大家都觉得脚本语言是没有指针、引用、地址之类的,所以直接用"="就可以把一个对象复制给另外一个对象。
var i1 = 1;   
var i2 = i1;   
i2 = 2;   
alert("i1是:"+i1,"i2是:"+i2);  
这只是是把对象的地址复制,真确来说是基本数据类型可以复制,非基本类型(包括字符串)只复制其引用。
function cloneAll(fromObj,toObj){   
   for(var i in fromObj){   
      if(typeof fromObj == "object"){   
         toObj={};   
         cloneAll(fromObj,toObj);   
         continue;   
      }   
      toObj = fromObj;   
   }   
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值