数据处理函数$.grep,$.map,$.makeArray,sort
jQuery.grep(array, callback, [invert])
使用过滤函数过滤数组元素。
此函数至少传递两个参数:待过滤数组和过滤函数。过滤函数必须返回 true 以保留元素或 false 以删除元素。
invert:如果 "invert" 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当"invert" 为 true,则返回过滤函数中返回 false 的元素集。
var list=[{name:"zs",age:17},{name:"ls",age:20},{name:"ww",age:18}]; var adult=$.grep(list,function (val,index) { if(val.age>=18){ return true } }); console.log(adult); //[{name:"ls",age:20},{name:"ww",age:18}]
jQuery.makeArray(obj)
将类数组对象转换为数组对象。
类数组对象有 length 属性,其成员索引为 0 至 length - 1。实际中此函数在 jQuery 中将自动使用而无需特意转换。
jQuery.map(arr|obj,callback)
将一个数组中的元素转换到另一个数组中。
作为参数的转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,并扩展至原始数组中。
<body> <div id="textArea"> <span data-val="1">one</span> <span data-val="2">two</span> <span data-val="3">three</span> <span data-val="4">four</span> </div> </body> <script> var spanArray=$.makeArray($("#textArea span")).map(function (obj) { var param={} param.text=obj.textContent; param.value=$(obj).attr("data-val"); return param; }); console.log(spanArray);//[{text:"one",value:"1"},{text:"two",value:"2"},{text:"three",value:"3"},{text:"four",value:"4"}] </script>
arrayObject.sort(sortby)
sortby可选。规定排序顺序。必须是函数。
返回值是对数组的引用。
如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。
var list=[{name:"zs",age:17},{name:"ls",age:20},{name:"ww",age:18}]; list.sort(function (a,b) { return a.age-b.age; }) console.log(list);//[{name:"zs",age:17},{name:"ww",age:18},{name:"ls",age:20}]