参数是函数的函数叫做高阶函数。
1. js date 对象 参考:https://www.runoob.com/jsref/jsref-obj-date.html
var d = new Date();
var d = new Date(milliseconds);
var d = new Date(dateString);
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
getDay();
getDate();
getHours();
var d = new Date(2015, 5, 19, 20, 15, 30, 123);
JavaScript的月份范围用整数表示是0~11,0表示一月,1表示二月……
var d = Date.parse('2015-06-24T19:49:22.875+08:00');
它返回的不是Date对象,而是一个时间戳。
var d = new Date(1435146562875);
d.toLocaleString(); // '2015/6/24 下午7:49:22',本地时间(北京时区+8:00),显示的字符串与操作系统设定的格式有关
d.toUTCString(); // 'Wed, 24 Jun 2015 11:49:22 GMT',UTC时间,与本地时间相差8小时
2. indexOf() 方法
var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
--返回13
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
string.indexOf(searchvalue,start)
3. Array filter() 方法
filter() 方法创建一个新的数组,它用于把Array的某些元素过滤掉,然后返回剩下的元素。
新数组中的元素是通过检查指定数组中符合条件的所有元素。
array.filter(function(currentValue,index,arr), thisValue)
实例:
// Filter visible features that don't match the input value.即过滤了与输入值不匹配的数据
var filtered = mypoi.filter(function (feature) {
var name = normalize(feature.properties.name);
return name.indexOf(value) > -1 ;
});
// 删除重复元素
r = arr.filter(function (element, index, self) {
return self.indexOf(element) === index;
});
4. array map() 方法。
map()方法是定义在js的array中。
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
array.map(function(currentValue,index,arr), thisValue)
实例:遍历数据,仅仅返回某一个属性,形成新的数组
filtered.map(function (feature) {
return feature.properties.name;
})
//把Array的所有数字转为字符串
arr.map(String);
5.array sort()方法
默认情况下,对字符串排序,是按照ASCII的大小比较的。
因为Array
的sort()
方法默认把所有元素先转换为String再排序。
通常规定,对于两个元素x
和y
,如果认为x < y
,则返回-1
,如果认为x == y
,则返回0
,如果认为x > y
,则返回1
,这样,排序算法就不用关心具体的比较过程,而是根据比较结果直接排序。
友情提示,sort()
方法会直接对Array
进行修改,它返回的结果仍是当前Array
//使用箭头函数
//【注】localeCompare() 是js内置方法
data.sort((a, b)=> b.chinese.localeCompare(a.chinese, 'zh')); //z~a 排序
data.sort((a, b)=> a.chinese.localeCompare(b.chinese, 'zh')); //a~z 排序
//根据英文字母排序
//使用箭头函数
data.sort((a, b)=> b.english.charCodeAt(0)-a.english.charCodeAt(0)); //z~a 排序
data.sort((a, b)=> a.english.charCodeAt(0)-b.english.charCodeAt(0)); //a~z 排序
//根据数字排序
//使用箭头函数
data.sort((a, b)=> b.score-a.score); //分数从高到低 排序
data.sort((a, b)=> a.score-b.score); //分数从低到高 排序
6.格式化输入值
function normalize(string) {
return string.trim().toLowerCase();
}
7.过滤数组重复属性的函数
function getUniqueFeatures(array, comparatorProperty) {
var existingFeatureKeys = {};
// Because features come from tiled vector data, feature geometries may be split
// or duplicated across tile boundaries and, as a result, features may appear
// multiple times in query results.
var uniqueFeatures = array.filter(function (el) {
if (existingFeatureKeys[el.properties[comparatorProperty]]) {
return false;
} else {
existingFeatureKeys[el.properties[comparatorProperty]] = true;
return true;
}
});
return uniqueFeatures;
};
8. reduce()函数
Array的reduce()
把一个函数作用在这个Array
的[x1, x2, x3...]
上,这个函数必须接收两个参数,reduce()
把结果继续和序列的下一个元素做累积计算
//比方说对一个Array求和,就可以用reduce实现:
var arr = [1, 3, 5, 7, 9];
arr.reduce(function (x, y) {
return x + y;
}); // 25
9.object.keys()
Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致
传入对象,返回属性名
传入字符串,返回索引
构造函数 返回空数组或者属性名