一個朋友問對象如何轉為數組,當我問他為啥要轉得時候,他告訴我,數組可以用js循環遍歷,而對象則不可以。其實呢,對象同樣可以循環遍歷的啊。不用轉換也可以循環!說明你對js或者jquery的某些操作不是很熟練!在這里我簡單介紹一下!
案例
我們看如下對象:
1
2
3
4
5
6
7
8
9
|
var
data={
張三:69,
李四:72,
王五:90,
二麻子:88,
前端博客:100,
haorooms : 98,
王大壯:99
}
|
假如上面是后台返回的一個key,一個是value的對象(這種對象相信大家經常遇到吧!),現在要把這個內容,循環綁定到一個表格中。有的朋友對對象的循環就不知道怎么操作了!今天我給大家介紹兩個方法!
方法一:
用$.each的方式進行循環!
假如你不知道$.each的話,建議大家網上搜一搜。當然也可以搜索一下“jquery的$().each,$.each的區別”,關於他們的區別,我在這里就不詳細介紹了。可能有的朋友$().each這個方式用的比較多,今天主要給大家介紹$.each。
$.each()可以遍歷數組和對象。方式如下:
1
2
3
4
|
$.each([{“name”:”haorooms”,”email”:”bb@126.com”},{“name”:”qianduan”,”email”:”aa@hao.com”}],
function
(i,n)
{
alert(“索引:”+i,”對應值為:”+n.name);
});
|
也可以這么遍歷:
1
2
3
4
|
var
arr1 = [ “one”, “two”, “three”, “four”, “five” ];
$.each(arr1,
function
(){
alert(
this
);
});
|
輸出:one two three four five
最爽的是可以遍歷數組:
var obj =data;//上面復制的data
$.each(obj, function(key, val) {
alert(obj[key]);//可以輸出成績
console.log(key);//可以輸出姓名
});
方法二:
用for in循環,可以遍歷obj
對上面的對象,我們可以這么寫來循環!
for(var i in data){ console.dir(i);//輸出姓名 console.dir(data[i]);//輸出分數 }
for in循環相信大家應該不陌生!for循環我們用到比較多的是for(var i=0;i<array.length;i++)這樣,這個主要是針對數組來循環的。對於對象,我們通常用for in循環!
另外,假如我們遇到如下對象:
1
2
3
4
5
6
7
8
9
|
var
data={
張三:69,
李四:72,
王五:90,
二麻子:88,
前端博客:100,
haorooms : 98,
王大壯:99
}
|
我們可以用data.haorooms得到98,但是我們用“data.前端博客”會報錯,因此,在我們用漢字做key值的時候,選取的時候應該用data["前端博客"],這種方式來選擇,不要再用點號了。