1、filter():
语法:
var filteredArray = array.filter(callback[, thisObject]);
- 参数说明:
callback: 要对每个数组元素执行的回调函数。返回结果为true和 false
thisObject : 在执行回调函数时定义的this对象。
//利用filter()和indexOf()对数组去重
function choose_no_repeat_number(collection) {
var result = collection.filter(haskey(element, index, self){
return self.indexOf(element) == index;
});
return result;
}
indexOf只返回元素在数组中第一次出现的位置(也就是第一次出现的索引),如果与当前元素位置(索引)不一致,说明该元素在前面已经出现过,是重复元素
- 功能说明:
对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。
回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。
如参数 thisObject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如果没有传递或者为null,那么将会使用全局对象。
filter 不会改变原有数组,记住:只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略,而在回调函数开始执行到最后一个元素这一期间,数组元素被删除或者被更改的,将以回调函数访问到该元素的时间为准,被删除的元素将被忽略。
2、map()
对数组中的每个元素进行操作,返回的是每个元素操作后的值
//将所有的数组元素转换为大写:
var strings = ["hello", "Array", "WORLD"];
function makeUpperCase(v)
{
return v.toUpperCase();
}
var uppers = strings.map(makeUpperCase);
// uppers is now ["HELLO", "ARRAY", "WORLD"]
// strings is unchanged
//结果:["hello", "Array", "WORLD"].map(makeUpperCase) : HELLO, ARRAY, WORLD
3、some()
对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。
some()是对整个数组的判断。比如检查是否有数组元素大于等于10,只有存在一个及以上就返回true。
4、every()
用法和map()相同,区别是every()是每个元素都要满足条件才能返回true,比如测试是否所有数组元素都大于等于10,返回结果要求每个元素都大于0才为true。
5、forEach()
仅遍历数组中的所有元素。
6、lastIndexOf():
语法
var index = array.lastIndexOf(searchElement[, fromIndex]);
参数说明
searchElement: 要搜索的元素
fromIndex : 开始搜索的位置,默认为数组的长度(length),在这样的情况下,将搜索所有的数组元素。搜索是反方向进行的。功能说明
比较 searchElement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。
7、indexOf()
功能与lastIndexOf()一样,搜索是正向进行的
8、reduce()
回调函数的语法如下所示:
function callbackfn(previousValue, currentValue, currentIndex, array1)
可使用最多四个参数来声明回调函数。
回调参数 | 定义
previousValue
通过上一次调用回调函数获得的值。如果向 reduce 方法提供 initialValue,则在首次调用函数时,previousValue 为 initialValue。currentValue
当前数组元素的值。currentIndex
当前数组元素的数字索引。array1
包含该元素的数组对象。
返回值
通过最后一次调用回调函数获得的累积结果。
reduce()只返回最后的一个值。
一般来讲prev是从数组中第一个元素开始的,next是第二个元素。但是当你传入初始值(initialValue)后,第一个prev将是initivalValue,next将是数组中的第一个元素。
- 备注
回调函数的返回值在下一次调用回调函数时作为previousValue
参数提供,最后一次调用回调函数获得的返回值为 reduce 方法的返回值。