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;
}
}
比较相邻的两个数,如果后面的比前面的小,把小的放在前面。
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;
}
}