尤其是
if(typeof array[0][field] === "number") {
array.sort(function(x, y) { return x[field] - y[field]});
}
if(typeof array[0][field] === "string") {
array.sort(function(x, y) { return x[field].localeCompare(y[field])});
}
判断要排序的值如果是数字直接相减就行了,否则字符串用localeCompare来比较大小,都是很基础的内容。
typeof:http://www.cnblogs.com/lidabo/archive/2011/12/29/2305770.html
数组的sort方法
http://www.cnblogs.com/longze/archive/2012/11/27/2791230.html
http://www.w3school.com.cn/jsref/jsref_sort.asp
localeCompare
http://www.w3school.com.cn/jsref/jsref_localeCompare.asp
首先说明 我也看不懂......我感觉array[0][field] 获取的是下表为0的对象的 field属性 ===是绝对判断 跟java== 是否指向同一块物理内存地址一样
判断json数组第一个元素数据类型是否是字符串
判断json数组第一个元素的field字段数据类型是否是字符串
array[0][field] 表示取array数组的第一个元素对象下的field属性值,也就是说array[0]是一个对象,例如:
array = [{'a':'123'},{'b':'456'}]
array[0]['a'] = '123'