恰好有空,整理了一些数组的常用方法,后期持续更新
highlight: a11y-dark
一、$.each
使用场景:
可以用来遍历数组或对象
解说:
如果是遍历数组,那么它会为数组中的每个元素执行提供的回调函数。回调函数接收两个参数:分别是当前元素的索引(key)和值(val)如果在回调函数中返回false,可以提前终止遍历循环。
如果是遍历对象,那么它会遍历出该对象的所有属性和值
代码示例:
$.each(arr, function(key, val) {
console.log('index in arr:', key, ', corresponding value:', val);
if(val == 'string'){return false}
});
二、$.grep
使用场景:
过滤数组元素
解说:
此函数传递参数有:array、callback、invert
array:需要过滤的数组;
callback:过滤的回调函数,用于处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引值。此函数应返回一个布尔值。另外,此函数可设置为一个字符串,当设置为字符串时,被当作是缩写形式; 如“a > 0”代表“function(a){ return a > 0; }”
invert:布尔值,默认false;返回内容和invert的值相反,如果invert为false,则返回过滤函数值为true的元素,否则相反;我觉得可以理解为invert为指令,过滤函数为条件,如果invert为true,那么过滤掉函数条件的内容,如果invert为false,那么不要过滤掉函数中值;看代码吧,一目了然
var arr=$.grep([0,1,2,3,4,5,6],function(n,i){ return n>2 });
返回值为:[3,4,5,6]
var arr=$.grep([0,1,2,3,4,5,6],function(n,i){ return n>2 },ture);
返回值为:[0,1,2]
三、$.map
使用场景:
将一个数组转换到另一个数组中
解说:
作为参数的转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,并扩展至原始数组中。
此函数传递参数有:array、callback
arry:待转换数组;
callback:为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。函数可返回任何值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素。如“a * a”代表“function(a){ return a * a; }”。
示例:
1.将原数组中每个元素加 4 转换为一个新数组。
$.map( [0,1,2], function(n){
return n + 4;
});
返回结果为:[4,5,6]
2.原数组中大于 0 的元素加 1 ,否则删除。
$.map( [0,1,2], function(n){
return n > 0 ? n + 1 : null;
});
返回结果为:[2,3]
3.原数组中每个元素扩展为一个包含其本身和其值加 1 的数组,并转换为一个新数组。
$.map( [0,1,2], function(n){
return [ n, n + 1 ];
});
返回结果为:[0, 1, 1, 2, 2, 3]