重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
先判斷array的對象是引用類型還是值類型
大竹網站建設公司成都創新互聯公司,大竹網站設計制作,有大型網站制作公司豐富經驗。已為大竹數千家提供企業網站建設服務。企業網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的大竹做網站的公司定做!
遍歷數組
var ret=[];
for(var i=0,len=array.length;ilen;i++;){
//引用類型
if(array[i].__has){
}else{
array[i].__has=true;
ret.push(array[i]);
}
}
for(var i=0,len=ret.length;ilen;i++){
delete array[i].__has
}
值類型類似,先定義一個對象tmp={}:
if(tmp[array[i]]){
}else{
tmp[array[i]]=true;
ret.push(array[i])
}
可以通過兩種方式:
1、通過數組的push方式添加元素
2、通過數組的下標方式添加元素
示例
script var arr=[]; arr.push('a');//第一種方式,往數組末尾添加一個字符a arr[arr.length]='a';//第二種方式,往數組末尾添加一個字符a/script
1.數組
語法:
ECMAScript
v3規定了數組直接量的語法,JavaScript
1.2和JScript
3.0實現了它。可以把—個用逗號分隔的表達式列表放在方括號中,創建并初始化—個數組。這些表達式的值將成為數組元素。例如:
var
a
=
[1,
true,
'abc'];
具體操作查看API.
ps:必須方括號隔開。
2.關聯數組
1.語法:
var
myhash=
{”key1″:”val1″,
“key2″:”val2″
};//obj
2.var
myhash=
{key1:”val1″,
key2:”val2″
};//obj-也可以
ps:跟json格式幾乎相同,但是json格式要求更加嚴格(里面的鍵值對必須使用雙引號),但json只能作為一種格式標準,如果要對其進行操作必須轉換成關聯數組對象(obj)。
2.簡單操作
1.向Hash關聯數組添加鍵值
//
添加一個新鍵
newkey
,鍵值為
newval
myhash[”newkey”]
=
“newval”;
2.刪除Hash關聯數組已有鍵值
//
刪除一個鍵
newkey
,同時,該鍵值對應的
newval
也就消失了
delete
myhash[”newkey”];
3.遍歷Hash關聯數組
//
遍歷整個hash
數組
for
(key
in
myhash)
{
val
=
myhash[key];
}
4.獲得值
方式1.myhash.key1
方式2.myhash.key2
3.json
格式要求:
{”key1″:”val1″,
“key2″:”val2″
};//嚴格按照此格式,操作可依照關聯數組的操作
二.前后臺交互中幾個關鍵點
1.當服務器發送的數據不是一條json,而是多條json時,則應當聯系數組和關聯數組來組裝字符串
例如:var
objs
=
[{
id:
1,
name:
'n_1'
},
{
id:
2,
name:
'n_2'}];
2.至始至終服務器給客戶端的數據都只是字符串,因此為了讓其能夠在js中對其進行必要的操作,可以通過eval()進行轉換成js可執行的對象。
因此jQuey中提供的$.parseJSON()是有局限的,如果是上面1提到的這種情況則就必須使用eval()進行轉換,然后再通過$.each(objs,function(i,o){...})進行操作
以某個結點依次進行訪問,如此循環下去。
1、依次對樹中每個結點均做一次且僅做一次訪問,訪問結點所做的操作依賴于具體的應用問題。
2、按訪問結點的先后次序將結點排列起來,就可分別得到樹中所有結點的前序列表、中序列表和后序列表。相應的結點次序分別稱為結點的前序、中序和后序。
3、深度優先遍歷從某個頂點出發,首先訪問這個頂點,然后找出剛訪問這個結點的第一個未被訪問的鄰結點,然后再以此鄰結點為頂點,繼續找它的下一個新的頂點進行訪問。
4、廣度優先遍歷從某個頂點出發,首先訪問這個頂點,然后找出這個結點的所有未被訪問的鄰接點,訪問完后再訪問這些結點中第一個鄰接點的所有結點,重復此方法,直到所有結點都被訪問完為止。
這篇文章主要介紹了jQuery處理json數據返回數組和輸出的方法,涉及jQuery操作數組及json的技巧,需要的朋友可以參考下
本文實例講述了jQuery處理json數據返回數組和輸出的方法。分享給大家供大家參考。具體實現方法如下:
代碼如下:
the
json
object
*
*$("selector").print_r_json(json,opts)
:
return
formatted
string
(and
print)
*sprint_r_json
:
just
return
the
string;
*print_r_json
:
return
the
formatted
string
and
json
data
*contribute
明河
*
*auth
iorichina
*
*example:
*3
ways
to
use
it
*script
language="javascript"
*$("selector").print_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"},{if_print:true,return_array:true});
*document.write($.sprint_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"}));
*$.print_r_json({"a":"aa","d":{"ef":{"a":"d","d":["a","b"]},"ed":"dd"},"g":"g"});
*/script
*
*/
$.fn.print_r_json
=
function(json,options){
if(typeof(json)!="object")
return
false;
var
opts
=
$.extend({},$.fn.print_r_json.defaults,options);
var
data
=
'';
if(opts.if_print)
{
data
=
$.sprint_r_json(json)
$(this).html('div
style="font-weight:bold"'+(opts.return_array?'Array':'JSON-DATA')+'/div'+data);
}
if(opts.array)
{
return
$.json_to_array(json);
}
return
data;
};
$.fn.print_r_json.defaults
=
{
if_print
:
false,//if
or
just
return
formatted
string
return_array
:
true
//return
an
Array
};
$.extend({
print_r_json
:
function(json)
{
if(typeof(json)=="object")
{
var
text='div
style="font-weight:bold;"{/divdiv
style="margin-left:25px;"';
document.write('div
style="font-weight:bold;"{/divdiv
style="margin-left:25px;"');
for(var
p
in
json)
{
if(typeof(json[p])=="object")
{
document.write('div["'+p+'"]
=
');
text+='div["'+p+'"]
=
'+$.print_r_json(json[p])+'/div';
document.write('/div');
}
else
{
text+='div['+((/^d+$/).test(p)?p:('"'+p+'"'))+']
=
"'+json[p]+'"/div';
document.write('div['+p+']
=
'+json[p]+'/div');
}
}
text+='/divdiv
style="font-weight:bold;"}/div';
document.write('/divdiv
style="font-weight:bold;"}/div');
return
(text);
}
else
{
document.write(json);
return
(json);
}
},
sprint_r_json
:
function(json)
{
if(typeof(json)=="object")
{
var
text
=
'div
style="font-weight:bold;"{/divdiv
style="margin-left:25px;"';
for(var
p
in
json)
{
if(typeof(json[p])=="object")
{
text
+=
'div["'+p+'"]
=
'+$.sprint_r_json(json[p])+'/div';
}
else
{
text
+=
'div['+((/^d+$/).test(p)?p:('"'+p+'"'))+']
=
"'+json[p]+'"/div';
}
}
text
+=
'/divdiv
style="font-weight:bold;"}/div';
return
(text);
}
else
{
return
(json);
}
},
json_to_array
:
function(json)
{
if(typeof(json)=="object")
{
var
text
=
new
Array();
for(var
p
in
json)
{
if(typeof(json[p])=="object")
{
text[p]
=
$.json_to_array(json[p]);
}
else
{
text[p]
=
json[p];
}
}
return
(text);
}
else
{
return
(json);
}
}
});
希望本文所述對大家的jQuery程序設計有所幫助。
通過標簽選擇器獲取的jQuery對象數組舉例:
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
""
html xmlns=""
head
title/title
script src="../myjs/jquery-1.4.2.js" type="text/javascript"/script
script ?type ="text/javascript"
? $(function() {
? ? ? $("p").text("這是p標簽");
? });
/script
/head
body
p/p
p/p p/p p/p p/p
p/p
/body
/html
運行結果: