笔记:操作数组

95 阅读1分钟

数组根据某个条件删除子元素grep

$.grep(array, callback, [invert])
过滤数组,此函数至少传递两个参数(第三个参数为true或false,表示是否取反): 待过滤数组和过滤函数. 过滤函数必须返回 true 以保留元素或 false 以删除元素
第二个参数函数中包含两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引值,此函数应返回一个布尔值

  • array:待过滤数组;
  • callback:处理数组中的每个元素,并过滤元素$.grep(arr,function(value,index){return index>1;});
    另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素,i 代表元素索引值。如“a > 0”代表“function(a){ return a > 0; }” invert:布尔型可选项,默认值false,值为true或false。 如果 “invert” 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当”invert” 为 true,则返回过滤函数中返回 false 的元素集。
//使用grep删除指定值
var arr = [1, 2, 3, 4, 5];
var removeItem = 2;
     arr = $.grep(arr, function(value) {
    return value != removeItem;
});

every检测数组,不满足条件则中断,且会返回最后的布尔值

使用指定函数检测数组中的所有元素:有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测 适于判断数组中是否所有项都满足某条件 array.every(function(currentValue,index,arr), thisValue)

some检测数组,满足条件则中断,且会返回最后的布尔值

使用指定函数检测数组中的所有元素:有一个元素满足,则整个表达式返回 true ,且剩余的元素不会再进行检测 适于判断数组中是否有某一项满足条件 array.some(function(currentValue,index,arr), thisValue)