Js数组方法:filter()、map()、some()、every()、forEach()、indexOf()、lastIndexOf()运用实例
filter():
语法:
var filteredarray = array.filter(callback[, thisobject]);
参数说明:
callback: 要对每个数组元素执行的回调函数。
thisobject : 在执行回调函数时定义的this对象。
//过滤掉小于 10 的数组元素: //代码: function isbigenough(element, index, array) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isbigenough); // 12, 130, 44
功能说明:
对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略,同时,新创建的数组也不会包含这些元素。
回调函数可以有三个参数:当前元素,当前元素的索引和当前的数组对象。
如参数 thisobject 被传递进来,它将被当做回调函数(callback)内部的 this 对象,如果没有传递或者为null,那么将会使用全局对象。
filter 不会改变原有数组,记住:只有在回调函数执行前传入的数组元素才有效,在回调函数开始执行后才添加的元素将被忽略,而在回调函数开始执行到最后一个元素这一期间,数组元素被删除或者被更改的,将以回调函数访问到该元素的时间为准,被删除的元素将被忽略。
注意:必须是有return
map():
语法:
var new_array = arr.map(function callback(currentvalue [,index [,array]]){ //返回new_array的元素 } [,thisarg ])
参数说明:
callback: 产生新数组元素的函数,带三个参数:
currentvalue:正在数组中处理当前元素。 index(可选的):数组中正在处理的元素的索引。 array(可选的):数组map被调用。
thisarg(可选的): this执行时使用的值callback。
//将所有的数组元素转换为大写: 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
功能说明:
该map()方法创建一个新的数组,其结果是在调用数组中的每个元素上调用一个提供的函数。(同样会跳过空位),map不改变它被调用的数组。
map()是处理服务器返回数据时是一个非常实用的函数。
some():
语法:
arr.some(callback [,thisarg ])
参数说明:同上
//检查是否有数组元素大于等于10: function isbigenough(element, index, array) { return element >= 10; } var passed = [2, 5, 8, 1, 4].some(isbigenough); // passed is false passed = [12, 5, 8, 1, 4].some(isbigenough); // passed is true
功能说明:对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 true,如果发现这个元素,some 将返回 true,如果回调函数对每个元素执行后都返回 false ,some 将返回 false。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略。
可用于检查数组中是否存在某个值
every():
语法:
arr.every(callback [,thisarg ])
参数说明:同上
//测试是否所有数组元素都大于等于10: function isbigenough(element, index, array) { return element >= 10; } var passed = [12, 5, 8, 130, 44].every(isbigenough); // passed is false passed = [12, 54, 18, 130, 44].every(isbigenough); // passed is true
功能说明:对数组中的每个元素都执行一次指定的函数(callback),直到此函数返回 false,如果发现这个元素,every 将返回 false,如果回调函数对每个元素执行后都返回 true ,every 将返回 true。它只对数组中的非空元素执行指定的函数,没有赋值或者已经删除的元素将被忽略
foreach():
语法:
arr.foreach(callback [,thisarg ])
参数说明:同上
//打印数组内容: function printelt(element, index, array) { document.writeln("[" + index + "] is " + element + " "); } [2, 5, 9].foreach(printelt); // prints: // [0] is 2 // [1] is 5 // [2] is 9
功能说明:该foreach()方法为每个数组元素执行一次提供的函数。没有返回值。
indexof():
语法:
arr.indexof(searchelement [,fromindex])
参数说明:
searchelement:要在数组中定位的元素。
fromindex (可选的):索引开始搜索。如果索引大于或等于数组的长度,则返回-1,这意味着数组将不被搜索。如果提供的索引值是负数,则将其作为数组末尾的偏移量。
注意:如果提供的索引是负数,数组仍然是从前到后搜索。如果计算出的索引小于0,那么整个数组将被搜索。默认值:0(整个数组被搜索)。
//查找符合条件的元素: var array = [2, 5, 9]; var index = array.indexof(2);// 0 index = array.indexof(7); //-1
var arr = [1,2,3,4,5,4,3,2]; var index = arr.indexof(3);//2 index = arr.indexof(3,3);//6 index = arr.indexof(3,-3);//6 -3表示搜索 后面3个 4,3,2
lastindexof():
语法:
var index = array.lastindexof(searchelement[, fromindex]);
参数说明
searchelement: 要搜索的元素
fromindex : 开始搜索的位置,默认为数组的长度(length),在这样的情况下,将搜索所有的数组元素。搜索是反方向进行的。
功能说明
比较 searchelement 和数组的每个元素是否绝对一致(===),当有元素符合条件时,返回当前元素的索引。如果没有发现,就直接返回 -1 。
var arr = [2, 5, 9, 2]; var index = arr.lastindexof(2);//3 index = arr.lastindexof(7);//-1 index = arr.lastindexof(2, 3);//3 表示从下标为3开始向前找,当然第一次就找到 index = arr.lastindexof(2, 2);//0 表示从下标为2开始向前找,就找到第一位 index = arr.lastindexof(2, -2);//0 表示从倒数第二位开始向前找,就找到第一位 index = arr.lastindexof(2, -1);//3 表示从倒数第一位开始向前找
推荐阅读
-
Js数组方法:filter()、map()、some()、every()、forEach()、indexOf()、lastIndexOf()运用实例
-
Jsの练习-数组其他常用方法 -map() ,filter() ,every() ,some()
-
js数组的迭代方法(filter, every, some, forEach)
-
js数组中的find(), findIndex(), filter(), forEach(), some(), every(), map(), reduce()方法的详解和应用实例
-
Js数组方法:filter()、map()、some()、every()、forEach()、indexOf()、lastIndexOf()运用实例
-
ECAMscript5数组遍历方法——forEach()、map()、filter()、some()、every()
-
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例_javascript技巧
-
js数组中的find(), findIndex(), filter(), forEach(), some(), every(), map(), reduce()方法的详解和应用实例
-
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例_javascript技巧
-
Jsの练习-数组其他常用方法 -map() ,filter() ,every() ,some()