我在前面的一篇文章中,转载了网友的一些jquery开发技巧和常用的方法:http://www.haorooms.com/post/jquery_shouji_all ,今天说一下jquery筛选数组的几个常用函数用法。
jquery grep()
用法:
jQuery.grep( array, function [, invert ] )
array数组不解释,function(对象或者数组元素,整数或者数组的索引),invert 是一个布尔值
$(document).ready( function(){
var array = [1,2,3,4,5,6,7,8,9];
var filterarray = $.grep(array,function(value){
return value > 5;//筛选出大于5的
});
for(var i=0;i<filterarray.length;i++){
console.dir(filterarray[i]);
}
for (key in filterarray){
console.dir(filterarray[key]);
}
})
输出6、7、8、9 和6、7、8、9
var arr = [ 1, 9, 3, 8, 6, 1, 5, 9, 4, 7, 3, 8, 6, 9, 1 ];
arr = $.grep(arr, function( n, i ) {
return ( n !== 5 && i > 4 );
});
$( "p" ).text( arr.join( ", " ) );
p标签显示“1, 9, 4, 7, 3, 8, 6, 9, 1” //arr中不等于5 并且索引值大于4的(第五个开始)
js中的join方法
上面已经用到,很简单,JS 中的JOIN 是将一数组按照JOIN的参数连接起来。
var arr = [ "a", "b", "c", "d", "e" ];
document.write(arr.join("-"));
结果:a-b-c-d-e。
jquery each()筛选遍历数组
$().ready(
function(){
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {
alert(name);
alert(value);
});
var anArray = ['one','two','three'];
$.each(anArray,function(n,value){
alert(n);
alert(value);
}
);
}
);
jquery inArray()筛选遍历数组
$().ready(
function(){
var anArray = ['one','two','three'];
var index = $.inArray(‘two’,anArray);
alert(index);//返回该值在数组中的键值,返回1
alert(anArray[index]);//value is two
}
);
jquery map()筛选遍历数组
$().ready(
function(){
var strings = ['0','1','2','3','4','S','6'];
var values = $.map(strings,function(value){
var result = new Number(value);
return isNaN(result) ? null:result;
}
);
for (key in values) {
alert(values[key]);
}
}
);
jquery遍历解析json对象
var json = [{dd:'haorooms',AA:'湛山寺',re1:123},{cccc:'dd',lk:'1qw'}];
for(var i=0,l=json.length;i<l;i++){
for(var key in json[i]){
alert(key+':'+json[i][key]);
}
}
js排序sort()
var fruit = ['cherries', 'apples', 'bananas'];
fruit.sort(); // ['apples', 'bananas', 'cherries']
var scores = [1, 10, 21, 2];
scores.sort(); // [1, 10, 2, 21]
// 10在2前面是因为10前面是1,1在2前面
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
var items = [
{ name: 'Edward', value: 21 },
{ name: 'Sharpe', value: 37 },
{ name: 'And', value: 45 },
{ name: 'The', value: -12 },
{ name: 'Magnetic', value: 13 },
{ name: 'Zeros', value: 37 }
];
// 通过 value排序
items.sort(function (a, b) {
return a.value - b.value;
});
// 通过名字排序
items.sort(function(a, b) {
var nameA = a.name.toUpperCase(); // 忽略大小写
var nameB = b.name.toUpperCase(); // 忽略大小写
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
// names must be equal
return 0;
});