重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
先判断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
运行结果: