jquery工具函数
$.trim() //去除两边的空格
$.each() //遍历数组
对数组array中的每一个元素,调用function函数处理,但没有返回值。
var arr=['张三','李四','王五']; $.each(arr,function(index,value){ $('#box').html($('#box').html() + (index+1) + '.' + value + '<br />'); })
效果
$.map() //修改数据
对数组array中的每个元素,调用function函数进行处理,然后将结果返回,得到一个新的数组。
$.map( object, callback )
$.map(callback(domElement,index))
var arr = [4,2,6,9,11,25,38,59]; var arrMap=$.map(arr,function(element,index){ //return index < 5 && element < 6; //这里就是按布尔值返回的 if(index<5 && element<6){ return element; } }) alert(arrMap);
效果
4,2
var arr = [4,2,6,9,11,25,38,59];
var arrMap=$.map(arr,function(element,index){
return[element-15,index];
})
alert(arrMap);
效果
-11,0,-13,1,-9,2,-6,3,-4,4,10,5,23,6,44,7
js的forEach(只能用于遍历数组)
[].forEach(
function
(value, index, array) {
// ...
});
var
data=[1,3,4] ;
var
sum=0 ;
data.forEach(
function
(val,index,arr){
console.log(arr[index]==val);
// ==> true
sum+=val
})
console.log(sum);
// ==> 8
js的map (可用于遍历数组或者遍历对象)
//遍历数组 var data=[1,2,5,6,3,4]; var sum=0; //原数组并未发生变化 var sum=data.map(function(value,index,arr){ console.log(arr[index],value,arr); return value*value }) console.log(sum)//相当于创建新数组并不会影响以前以前的数组
//遍历对象 var users = [ {name: "张含韵", "email": "zhang@email.com"}, {name: "江一燕", "email": "jiang@email.com"}, {name: "李小璐", "email": "li@email.com"} ]; var arrMap=users.map(function(value,index,arr){ console.log(value,index,arr) return value.name }) console.log(arrMap);
map值“映射”。
[].map(
function
(value, index, array) {
// ...
});
var
data=[1,3,4]
var
Squares=data.map(
function
(val,index,arr){
console.log(arr[index]==val);
// ==> true
return
val*val
})
console.log(Squares);
// ==> [1, 9, 16]
由于forEach、map都是ECMA5新增数组的方法,所以ie9以下的浏览器还不支持(万恶的IE啊),不过呢,可以从Array原型扩展可以实现以上全部功能,例如forEach方法:
forEach map低版本下兼容的封装
参考:http://www.cnblogs.com/jocyci/p/5508279.html
- 不管是forEach还是map在IE6-8下都不兼容(不兼容的情况下在Array.prototype上没有这两个方法),那么需要我们自己封装一个都兼容的方法
$.unique()删除重复的 DOM 元素