var each = function(obj, fn){
/**
*在这里写代码,要求构造一个迭代器,对数组,对象进行遍历
*完成下面要求输出的结果
*/
};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("第1题执行出错,错误信息: " + 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("第1题执行出错,错误信息: " + e);
}
/**
*在这里写代码,要求构造一个迭代器,对数组,对象进行遍历
*完成下面要求输出的结果
*/
var toString = Object.prototype.toString,
ret;
for(var i in obj){
if(toString(obj[i]) === "[object Object]" || toString(obj[i]) === "[object Array]"){
ret = fn.call(obj[i], i, obj[i]);
}else{
ret = fn(i, obj[i]);
}
if(ret === true){
continue;
}else if(ret === false){
break;
}
}
};
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(index, elem){
if( 6 == elem )
return true;
else if( 8 == elem )
return false;
console.log(index + ": \"" + elem + "\"");
});
console.groupEnd();
/*------[执行结果]------
1: "4"
2: "5"
4: "7"
------------------*/
console.group(data2);
each(data2, function(index, elem){
if( 5 == elem )
return true;
console.log(index + ": \"" + elem + "\"");
});
console.groupEnd();
/*------[执行结果]------
a: "4"
c: "6"
------------------*/
}catch(e){
console.error("第1题执行出错,错误信息: " + e);
}
/**
*在这里写代码,要求构造一个迭代器,对数组,对象进行遍历
*完成下面要求输出的结果
*/
var ret;
for(var i in obj){
ret = fn.call(obj[i], i, obj[i]);
if(ret === true){
continue;
}else if(ret === false){
break;
}
}
};
你的输出结果不对啊 一个是data1的编号 不是1 2 3 还有一个是 data2返回的不是数字 是字母
但是题的意思是不让改 this 也就是说题出错了?
{
if(!Array.prototype.foreach)
{
Array.prototype.foreach = function(action)
{
for(var i = 0 ; i < this.length ; i ++) action(i,this[i]);
}
}
}()var array = ['a','b','c','d','e','f','g','h'];
array.foreach(function(index,n){alert(index+':'+n)})
if(toString(obj[i]) === "[object Object]" || toString(obj[i]) === "[object Array]"){
ret = fn.call(obj[i], i, obj[i]);这句话是什么意思啊? 能帮我解答下吗