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

7077次浏览

我在前面的一篇文章中,转载了网友的一些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;
});

Tags: jquerygrepjoininArray

相关文章: