今天用了大半天的时间,刷完了fcc中文社区上的js基础算法题,重新再刷这些题目的时候发现,有些函数方法还是掌握不够。就今天的学习记录一下。
map()方法
map() 方法:它返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
eg:
var oldArray=[1,2,3,4];
var newArray=oldArray.map(function(val){
return val*4});
val即为遍历原来数组中的参数;
map()方法主要用于处理新的数组元素与原来数组中每个元素有关联的问题。reduce()方法
reduce()方法:迭代一个数组,对数组中的所有元素调用指定的回调函数,并把它累积到一个值中。
eg:var array=[1,2,3,5];
var singleVal=array.reduce(function(perviousVal){
return previousVal-cumentVal});
reduce()方法主要用于处理数组中各个元素累加等操作。filter()方法
filter()方法:迭代一个数组,并且按给出的条件过滤出符合的元素。
eg:
var newArray=array.filter(function(val){
return val!=5});
例子的意思就是过滤array数组中不等于5的元素。newArray中没有5这个元素。
此方法用于判定,排除一些元素的操作。toLowerCase()方法:将字符串转换为小写
toSupperCase()方法:将字符串转换为大写concat()方法,将两个及以上字符串或者数组连接起来。
语法:array1.concat([item1[, item2[, … [, itemN]]]]) ;sort()方法:它就是js中处理数组中元素排序的神器了,它按升序排列数组项,sort()会调用每个数组项的toString()转型方法,比较得到的字符串。
eg:
var array=[2,9,8,10,7,4];
var newArray=array.sort(function(a,b){
return a-b});//[2,4,7,8,9,10]
他的巧妙之处就是
如果所传递的第一个参数小于第二个参数,则返回负值。
如果两个参数相等,则返回零。
如果第一个参数大于第二个参数,则返回正值。
注:reverse()方法调用它可以直接将字符,串数组倒置。split()方法:将字符串分割成数组。返回的是一个字符串数组。
join()方法正好与split()方法相反,它将数组连接成字符串。
replace()方法:返回一个由替换一些或者所有匹配的模式后的新字符串。
str.replace(regexp|substr,newSubstr|function());字符串截取的一些方法
charAt(index):截取下标为index的字符。
substring(start,length):截取下标从start开始,length长度的字符。
str.slice(beginslice,endslice):截取一个字符串一部分。从beginalice下标开始到endslice下标结束。-
str.indexOf(searchValue,fromIndex):从下标为formIndex字符开始查找为searchValue的字符串。
回调用str对象中第一次出现指定值的索引。12.数组中常用的一些方法
Array.push():将一个或者多个元素添加到数组末尾。
Array.push.apply(array1,array2):将两个数组合并。
注意:在我看来,两个方法差不了多少,但是如果要添加的数组元素较多的话,建议采用第二种。Array.splice():通过删除现有元素和1或者添加新元素来更改一个数组。
array.splice(start,deleteCount,items):start表示移除的数组项下标(0开始),deleteCount表示删除的数组项数,items表示添加的数组项。 -
CharCodeAt(index)返回0~65535之间的整数,也就是说此方法将A ,B等一些字符转换成相应的数字。
string.fromCharCode(num1,num2,num3….):返回使用指定的Unicode序列值创建的字符串。与上面的方法相反。
assign(target,…,sources):仅仅将可枚举和自己的属性从原对象复制到目标对象,返回目标对象。
使用源上码[Get]和目标上的[Set],即调用getter和setter。
好了,大概常用的也就这些了,函数方法光靠背是记不住的,必须用,只有将它理解,并应用到算法中,才算发挥他的作用。