基本上这两个操作都要写函数作为参数传进去。
假设有数组:
var arrg = [
{date:1472601600000,name:'监测4'}
{date:1374105600000,name:'监测1'}
{date:1464912000000,name:'监测3'}
{date:1487289600000,name:'监测6'}
{date:1492473600000,name:'监测7'}
{date:1384819200000,name:'监测2'}
{date:1479772800000,name:'监测5'}
]
1、排序
arrg.sort(function(a,b) {//a,b应该分别是前后两个元素
return a.date - b.date;
});//无须返回值,直接将arrg排好序
参考文章
JavaScript sort() 方法
2、查找
返回元素
_timeSliders = [{id:'a'},{id:'b'}];
var obj = _timeSliders.find((t) => t.id == 'b');
alert(typeof obj != 'undefined');
返回下标
var i = arrg.findIndex(function (g, index, arr) {
return g.date == 1464912000000;
});//返回date == 1464912000000 在数组中的下标。如果无匹配,则返回-1
参考文章:
JavaScript 数组中查找符合条件的值
相关文章:
javascript 数组与json的混合怪物
我靠,IE不支持这两个方法,真无语。所以要检测下
if(array.find){
//用find
} else {
//自己再想办法
}
IE里面,数组查找可以用indexOf方法,像查找字符串一样:
var list = ["bar", "baz", "foo", "qux"];
alert(list.indexOf('foo'));//2
alert(list.indexOf('FOO'));//-1