jquery對象數(shù)組
小弟今天遇到一個jQuery數(shù)組對象的問題,添加進去,遍歷失敗,找不到什么原因 報錯原因(SyntaxError: missing ; after for-loop initializer),最后... 認真看代碼,百度上面找原因,果斷解決了.
找問題的同時找到了幾個比較有用的東西,拿下來留著,萬一以后有用!
<script src="js/jquery.js" ></script>
<script>
/**
* 從對象數(shù)組中刪除屬性為objPropery,值為objValue元素的對象
* @param Array arrPerson 數(shù)組對象
* @param String objPropery 對象的屬性
* @param String objPropery 對象的值
* @return Array 過濾后數(shù)組
*/
function remove(arrPerson,objPropery,objValue)
{
return $.grep(arrPerson, function(cur,i){
return cur[objPropery]!=objValue;
});
}
/**
* 從對象數(shù)組中獲取屬性為objPropery,值為objValue元素的對象
* @param Array arrPerson 數(shù)組對象
* @param String objPropery 對象的屬性
* @param String objPropery 對象的值
* @return Array 過濾后的數(shù)組
*/
function get(arrPerson,objPropery,objValue)
{
return $.grep(arrPerson, function(cur,i){
return cur[objPropery]==objValue;
});
}
/**
* 顯示對象數(shù)組信息
* @param String info 提示信息
* @param Array arrPerson 對象數(shù)組
*/
function showPersonInfo(info,arrPerson)
{
$.each(arrPerson, function(index,callback){
info+="Person id:" + arrPerson[index].id + " name:" + arrPerson[index].name+ " sex:"+ arrPerson[index].sex+" age:"+ arrPerson[index].age+"/r/t";
});
alert(info);
}
//測試數(shù)據(jù)
var arrPerson=new Array();
var person=new Object();
person.id=1;
person.name="帥哥";
person.sex="男";
person.age=30;
arrPerson.push(person);
person=new Object();
person.id=2;
person.name="美眉甲";
person.sex="女";
person.age=28;
arrPerson.push(person);
person=new Object();
person.id=3;
person.name="美眉乙";
person.sex="女";
person.age=20;
arrPerson.push(person);
//測試刪除
showPersonInfo("原始數(shù)組:/r/t",arrPerson);
arrPerson=remove(arrPerson,"id",1);
showPersonInfo("刪除之后:/r/t",arrPerson);
//測試獲取
arrPerson=get(arrPerson,"id",3);
showPersonInfo("只獲取ID為3的元素:/r/t",arrPerson);
</script>
$.each遍歷對象、數(shù)組的屬性值并進行處理
通過$.each,可以遍歷對象、數(shù)組的屬性值并進行處理,下面有個示例,需要的朋友可以參考下
通過它,你可以遍歷對象、數(shù)組的屬性值并進行處理。
使用說明
each函數(shù)根據(jù)參數(shù)的類型實現(xiàn)的效果不完全一致:
1、遍歷對象(有附加參數(shù))
1
2
3
4
|
$.each(Object,
function (p1, p2) {
this ;
//這里的this指向每次遍歷中Object的當前屬性值
p1; p2; //訪問附加參數(shù)
}, [ '參數(shù)1' ,
'參數(shù)2' ]);
|
2、遍歷數(shù)組(有附件參數(shù))
1
2
3
4
|
$.each(Array,
function (p1, p2){
this ;
//這里的this指向每次遍歷中Array的當前元素
p1; p2; //訪問附加參數(shù)
}, [ '參數(shù)1' ,
'參數(shù)2' ]);
|
3、遍歷對象(沒有附加參數(shù))
1
2
3
4
5
|
$.each(Object,
function (name, value) {
this ;
//this指向當前屬性的值
name; //name表示Object當前屬性的名稱
value; //value表示Object當前屬性的值
});
|
4、遍歷數(shù)組(沒有附加參數(shù))
1
2
3
4
5
|
$.each(Array,
function (i, value) {
this ;
//this指向當前元素
i; //i表示Array當前下標
value; //value表示Array當前元素
});
|
下面提一下jQuery的each方法的幾種常用的用法
Js代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
var
arr = [ "one" ,
"two" , "three" ,
"four" ];
$.each(arr, function (){
alert( this );
});
//上面這個each輸出的結果分別為:one,two,three,four
var
arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1,
function (i, item){
alert(item[0]);
});
//其實arr1為一個二維數(shù)組,item相當于取每一個一維數(shù)組,
//item[0]相對于取每一個一維數(shù)組里的第一個值
//所以上面這個each輸出分別為:1 4 7
var
obj = { one:1, two:2, three:3, four:4};
$.each(obj,
function (key, val) {
alert(obj[key]);
});
//這個each就有更厲害了,能循環(huán)每一個屬性
//輸出結果為:1 2 3 4
|
在前提不知道b在這個數(shù)組的下標,刪除b這個元素
var arrList = ['a','b','c','d'];
arrList.splice(jQuery.inArray('b',arrList),1);
alert(arrList);
其中jQuery.inArray('b',arrList)是b這個元素在數(shù)組arrList 中的位置
splice(index,1)函數(shù)中第一個參數(shù)index是要刪除元素在數(shù)組中的位置,第二個參數(shù)是要刪除的數(shù)量。
Array對象的方法有:
concat() 連接兩個或更多的數(shù)組,并返回結果。
join() 把數(shù)組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。
pop() 刪除并返回數(shù)組的最后一個元素。
push() 向數(shù)組的末尾添加一個或更多元素,并返回新的長度。
reverse() 顛倒數(shù)組中元素的順序。
shift() 刪除并返回數(shù)組的第一個元素
slice() 從某個已有的數(shù)組返回選定的元素
sort() 對數(shù)組的元素進行排序
splice() 刪除元素,并向數(shù)組添加新元素。
toSource() 返回該對象的源代碼。
toString() 把數(shù)組轉換為字符串,并返回結果。
toLocaleString() 把數(shù)組轉換為本地數(shù)組,并返回結果。
unshift() 向數(shù)組的開頭添加一個或更多元素,并返回新的長度。
valueOf() 返回數(shù)組對象的原始值。
var arrList = new Array();
arrList.push("abc");
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())
參考地址:
http://www.w3school.com.cn/jsref/jsref_obj_array.asp
|