jquery如何解析数组(JSONArray)?

jquery如何解析数组(JSONArray)?,第1张

1数组
语法:
ECMAScript v3规定了数组直接量的语法,JavaScript 12和JScript 30实现了它。可以把—个用逗号分隔的表达式列表放在方括号中,创建并初始化—个数组。这些表达式的值将成为数组元素。例如:
var a = [1, true, 'abc'];
具体 *** 作查看API
ps:必须方括号隔开。
2关联数组
1语法:
var myhash= {”key1″:”val1″, “key2″:”val2″ };//obj
2var
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获得值
方式1myhashkey1
方式2myhashkey2
3json
格式要求:
{”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){})进行 *** 作

根据你的需求,我写了两段代码(分使用jQuery和原生JS描述),请参考:

/使用jQuery的写法,需先引入jQuery库/
//第1步:读取a中的数值,并按逗号分割成数组
var a = $('#a')html()split(',');
//第2步:遍历数组,勾选与数组值相同的复选框
$each(a, function(index, item){
  $('input[value='+item+']')attr('checked', true);
});/原生JS的写法,需IE9及以上浏览器/
//第1步:读取a中的数值,并按逗号分割成数组
var a = documentgetElementById('a')innerTextsplit(',');
//第2步:遍历数组,勾选与数组值相同的复选框
aforEach(function(item, index, arr){
  var input = documentquerySelectorAll('input[value="'+item+'"]');
  for(var n=0;n<inputlength;n++){
    input[n]checked = 'checked';
  }
});

判断数组是否为空,可以用length方法:如vara=[];if(alength==0){alert(1)}else{alert(2)}判断数组为空不能用if(a),因为a这个时候是一个空数组对象,if会判断当前a是对象,返回true的

规定数组存放的为1,2,3,4这样的数字。

首先定义一个方法,查询数组中是否存在当前所点击的全部,参数为一个数组!

function checkIsAll(a){
    for(var i = 0;i < alength;i++){
        if(!arrindexOf(a[i])){
            return false;//如果有一个不存在就返回false
        }
    }
    return true;
}
//button的点击事件
$('button')click(function(){
    //如果点击的第一个button就给数组为[1,2,3,4,5],如果点击的第二个就给[6,7,8,9,10]
    var a = [[1,2,3,4,5],[6,7,8,9,10]][$('button')indexOf($(this))];
    
    //判断当前点击的里面的是否全部存在数组中
    if(checkIsAll(a)){
        //全部存在,循环删除arr里面对应的a
        for(var i = 0;i < alength;i++){
            arrsplice(arrindexOf(a[i]),1);
        }
    }else{
        //不是全部存在
        for(var i = 0;i < alength;i++){
            if(arrindexOf(a[i])==-1){
                arrpush(a[i]);
            }
        }
    }
});

望采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13368537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存