没看懂一段js代码 望大神解惑

图片说明
尤其是
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'