群里发了一个各大公司的javascript面试题,处看一下,准备学习下一一攻破哈哈,所以请问有木有大牛能解答出各题呢,好学习下。
实现一个遍历数组或对象里所有成员的迭代器这一题写了一下,跟这个页面(http://www.w3cfuns.com/thread-2264-1-1.html)的Explorer_wik写的差不多:
var each = function(obj, fn){
//+++++++++++答题区域+++++++++++
if(obj instanceof Array){
for(var i=0;i<obj.length;i++){
var temp=fn.call(obj[i],i+1);
if(temp===false){
break;
}
}
}
else{
if(!obj instanceof Object){
return false;
}
for(var e in obj){
fn.call(obj[e],obj[e],e);
}
}
//+++++++++++答题结束+++++++++++
};
try{
var data1 = [4,5,6,7,8,9,10,11,12];
var data2 = {
"a": 4,
"b": 5,
"c": 6
};
console.group(data1);
each(data1, function(o){
if( 6 == this )
return true;
else if( 8 == this )
return false;
console.log(o + ": \"" + this + "\"");
});
console.groupEnd();
/*------[执行结果]------
1: "4"
2: "5"
4: "7"
------------------*/
console.group(data2);
each(data2, function(v, n){
if( 5 == this )
return true;
console.log(n + ": \"" + v + "\"");
});
console.groupEnd();
/*------[执行结果]------
a: "4"
c: "6"
------------------*/
}catch(e){
console.error("执行出错,错误信息: " + e);
}
在线运行:http://jscode.chinacxy.com/code/10c3b669616dcbeafb14d8426e29e967.aspx
学习。。。