炫意html5
最早CSS3和HTML5移动技术网站之一

jquery的grep(),inArray(), map()及js的join,sort用法

我在前面的一篇文章中,转载了网友的一些jquery开发技巧和常用的方法:http://www.xyhtml5.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:'炫H5',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;
});

炫意HTML5 » jquery的grep(),inArray(), map()及js的join,sort用法

Java基础教程Android基础教程