前言

最近在FreeCodeCamp上面学习前端,总的来说,是非常好的一个网站,可以完全驱动你学习.
但是我发现还是得老老实实看书总结,毕竟那是别人的东西,不是自己的东西,
所以今天把在FCC上遇到的一些javascript方法写博客来总结一下。

map方法

map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组

1
2
3
4
5
6
var oldArray = [1,2,3,4,5];
var newArray = oldArray.map(function(val){
return val + 3;
});
//[4,5,6,7,8];
//注意newArray的值已经改变了,但是oldArray的值未改变。

reduce方法

数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中。
使用 reduce 方法时,你要传入一个回调函数,这个回调函数的参数是一个 累加器 (比如例子中的 previousVal) 和当前值 (currentVal)。
reduce 方法有一个可选的第二参数,它可以被用来设置累加器的初始值。如果没有在这定义初始值,那么初始值将变成数组中的第一项,而 currentVal 将从数组的第二项开始。

‘按照个人理解,reduce方法说白了就是累加数组内的元素而已’

1
2
3
4
5
6
7
8
var array = [4,5,6,7,8];
var res =[];

res = array.reduce(function(a,b){
return a + b;
}
);
//30

filter方法

filter 方法用来迭代一个数组,并且按给出的条件过滤出符合的元素。
filter 方法传入一个回调函数,这个回调函数会携带一个参数,参数为当前迭代的项(我们叫它 val )。
回调函数返回 true 的项会保留在数组中,返回 false 的项会被过滤出数组。

1
2
3
4
5
6
7
var oldArray = [1,2,3,4,5,6,7,8,9,10];

var newArray = oldArray.filter(function(val){
return val <= 5;
}
);
//[1,2,3,4,5]

sort方法

使用 sort 方法,你可以很容易的按字母顺序或数字顺序对数组中的元素进行排序。与我们之前用的数组方法仅仅返回一个新数组不同, sort 方法将改变原数组,返回被排序后的数组。sort 可以把比较函数作为参数传入。比较函数有返回值,当 a 小于 b,返回一个负数;当 a 大于 b ,返回一个正数;相等时返回0。如果没有传入比较函数,它将把值全部转成字符串,并按照字母顺序进行排序。

1
2
3
4
5
6
var array = [1, 12, 21, 2];
array.sort(function(a,b){
return b - a ;//从大到小排列
//return a - b ;//从小到大排列
}
);

reverse方法

reverse 方法来翻转数组。

1
2
3
var array = [1,2,3,4,5,6,7];
console.log(array.reverse());
//[7,6,5,4,3,2,1]

concat方法

concat 方法可以用来把两个数组的内容合并到一个数组中。
concat 方法的参数应该是一个数组。参数中的数组会拼接在原数组的后面,并作为一个新数组返回。

1
2
3
4
5
6
var oldArray = [1,2,3];
var concatMe = [4,5,6];
var newArray = [];

newArray = oldArray.concat(concatMe);
//[1,2,3,4,5,6]

split方法

你可以使用 split 方法按指定分隔符将字符串分割为数组。你要给 split 方法传递一个参数,这个参数将会作为一个分隔符。

1
2
3
var string = "I am in Dalian";
var array = [];
array = string.split(" ");//将空格做为分隔符;

join方法

将数组内的元素放入一个字符串内,里面的每一个元素可以用你指定的连接符来连接起来,这个连接符就是你要传入的参数。

1
2
3
4
var joinMe = ["Split","me","into","an","array"];
var joinedString = '';
joinedString = joinMe.join(" and");
//Splitmeintoanarray

replace方法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

1
2
3
var str = 'Twas the night before Xmas...';
var newstr = str.replace(/xmas/i, 'Christmas');
console.log(newstr); // Twas the night before Christmas...

slice方法

slice()方法,用于插入、删除或替换数组的元素。

push方法

push()方法,有2个用法,添加到元素到数组,合并2个数组。

1
2
3
4
5
var sports = ["soccer", "baseball"];
var total = sports.push("football", "swimming");

console.log(sports); // ["soccer", "baseball", "football", "swimming"]
console.log(total); // 4
1
2
3
4
5
6
//该示例使用 apply() 添加第二个数组的所有元素。
var vegetables = ['parsnip', 'potato'];
var moreVegs = ['celery', 'beetroot'];
Array.prototype.push.apply(vegetables, moreVegs);

console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']
  • push和concat区别:
    push 遇到数组参数时,把整个数组参数作为一个元素;而 concat 则是拆开数组参数,一个元素一个元素地加进去。
    push 直接改变当前数组;concat 不改变当前数组。
    如果想数组追加用concat,但是和java的replace一样,用完记得arr1=arr1.concat(arr2)

未完待续