自定义的函数function outFn(arg){ return function(obj1,obj2){ var value1 = obj1[arg]; var value2 = obj2[arg]; if(value1<value2){ return -1;
}else if(value1>value2){ return 1;
}else{ return 0;
}
}
}声明一个数组:var data = [{name:"a",age:28},{name:"b",age:18}];调用data.sort()方法后data.sort(outFn("age")); //按照age排序
console.log(data); //=>[{name:"a",age:28},{name:"b",age:18}]
console.log(data[0].age); //=>18
data.sort(outFn("name")); //按照name排序
console.log(data); //=>[{name:"a",age:28},{name:"b",age:18}]
console.log(data[0].age); //=>28把最后3行注释,按照age排序中是正常的console.log(data); //=> [{name:"b",age:18},{name:"a",age:28}]不理解红色的地方,求高手解答。
1 回答
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
四季花海
TA贡献1811条经验 获得超5个赞
console.log打印在控制台的值,是点击控制台后计算得到的(也就是最后生成的),developer tools已经提示清楚了“Value below was evaluated just now",另外console在MDN上标明不是标准,各个浏览器实现方式不一样,你可以试一下console.table(data)就知道了,要打印及时值应该console.log(JSON.stringify(data));
添加回答
举报
0/150
提交
取消