jq常用数组方法

154 阅读1分钟

恰好有空,整理了一些数组的常用方法,后期持续更新


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}

});

Pasted Graphic.png

image.png

二、$.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]

四、$.inArray

五、$.makeArray—不常用

六、$.unique

七、$.merge

八、indexOf()

九、lastIndexOf

十、slice()

十一、pop()

十二、push()

十三、unshift()

十四、shift()

十五、sort()

十六、reverse()

十七、splice()

十八、concat()

十九、join()

二十、find()

二十一、findIndex()

二十二、fill()

二十三、copyWithin()

二十四、from()

二十五、of()

二十六、entries()

二十七、values()

二十八、keys()

二十九、includes()

三十、多维数组