js数组、jquery数组及json数组


关键词

js数组 jquery数组 json数组

摘要

本文介绍js数组、jquery数组及json数组,之间的关系,如何创建,以及各种遍历操作等。

一、概念

js数组与jquery的数组,在我理解,本质上是一回事。jquery只是操作js的一个库,它的数组结构其实就是js的数组结构。
json是一种js对象,所以json数组其实就是js对象数组,每个数组元素其实是一个json对象。

二、创建

1、js数组的创建

//返回空数组
var arr = new Array();

//返回一个可以容纳5个元素的空数组
var arr = new Array(5);

//返回一个已初始化的数组
var arr = new Array(1,2,3,4,5);

2、jquery数组的创建

使用jquery的对象选择器,选择结果为多个的,自然就得到了jquery数组。如:

var arrCbx = $("input[type='checkbox']");

3、json数组的创建

json数组的创建跟json对象的创建是一个意思。

//这个就是json数组,中括号,里面1-n个大括号,大括号之间用逗号(,)分隔
var j = [{c11:"2",c12:"s12"},{c21:21,c22:"s22"}];

//这个里面包含了json数组
var j = {
  a:"1",
  b:"s",
  c:[{c11:"2",c12:"s12"},{c21:21,c22:"s22"}]
};


三、遍历

1、js遍历

1.1 最简单的for循环

for(j = 0; j < arr.length; j++) {
   //操作
}

1.2 优化版的for循环

for(j = 0,len=arr.length; j < len; j++) {
   //操作
}

1.3 数组自带的forEach函数,比普通的for循环效率要低

arr.forEach(function(e){  
   
});

//forEach的全参数版
[].forEach(function(item,index,array){
    //code something
});


1.4 forEach变种,性能比普通的foreach还要差

Array.prototype.forEach.call(arr,function(el){  
   
});


1.5 forin

for(j in arr) {
   
}

它的效率是所有的遍历中最低的。


1.6 forof遍历(需要ES6支持)

for(let value of arr) {  
   
});

这种方式是es6里面用到的,性能要好于forin,但仍然比不上普通for循环。


1.7 map

map虽然也遍历数组,但他的实质是遍历且逐个处理数组元素并返回一个新的数组。

var numbers = [4, 9, 16, 25];
var newNumbers = numbers.map(Math.sqrt);



2、jquery数组遍历

2.1 .each()

//arr是数组本身,相当于php的foreach($arr as $index => $obj)
$.each(arr, function(index, obj)){
    $(this)//还可以用这个来代表obj
}

//.each还可以这个样用,相当于jquery的对象扩展
$("input[type='checkbox']").each(function(i){
    $(this).attr("checked",true);
});

2.2 .map()

//跟js的map一样,回调函数是为了返回新的(加工后的)数组元素。

var retArr = $.map(arr, function(value, index){
    return (value.toUpperCase() + index);
});


<script>
//举一些例子
    
//var j = {a:"1",
//        b:"s",
//        c:[{c11:"2",c12:"s12"},{c21:21,c22:"s22"}]
//        };
//document.write("j.a = " + j.a +"<br>");
//document.write("j.b = " + j.b +"<br>");
//document.write("j.c[0].c11 = " + j.c[0].c11 +"<br>");

var j = [{ name: "张三", sex: "男" }, { name: "李四", sex: "女" }, { name: "王五", sex: "gay"}];
for(var i=0, len=j.length; i<len; i++){
    document.write("name: " + j[i].name + ", sex: " + j[i].sex + "<br>");
}
$.each(j, function(i){
    document.write("name: " + j[i].name + ", sex: " + j[i].sex + "<br>");
})
</script>

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:js数组、jquery数组及json数组:http://www.splaybow.com/post/js-jquery-json-array-852.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« FormData的使用 CSS3文字超出长度出现省略号text-overflow »