美文网首页
js、jquery 数组使用

js、jquery 数组使用

作者: LearningCoding | 来源:发表于2017-03-16 11:11 被阅读29次

定义一个数组
var arr = [];

一、js数组

1、数组添加元素:

1.1给数组末尾添加元素:

arr.push("a");
arr[arr.length] = "a";

1.1向数组开头添加一个或更多元素:

arr.unshift("a");

2、数组删除元素:

2.1删除数组末尾最后一个元素

arr.pop();

2.2删除数组开头第一个元素

arr.shift();

2.3根据元素值删除该元素

arr.splice($.inArray("a", arr), 1); // 使用到了jq

3、splice的用法

arr.splice(index, num, newitem1, newitem2, ...)
index:第几位
num:从第index位删除后几位
newItem:删除之后添加的元素

4、字符串与数组之间的转换:

4.1字符串转化成数组

var str = "a,b,c";
arr = str.split(",");

4.2数组转化字符串

var str = arr.join("-") // -为字符串连接符

5、数组排序

5.1sort 正序

var a = [6, 2, 3, 'a', 'x', 20],
b = a.sort(); // b和a指向同一个数组

5.2reverse 倒序

b = a.reverse();

6、取出数组部分元素

b = a.slice(0, 2); //下标从0取到2(不包括2),没有第二个参数则默认到末尾。第一个参数为负表示从末尾开始数。第一个参数小于第二个参数则为空。
//b是a一部分的副本,a本身不变

7、数组合并

var a = [1, 2, 3],
b = [4, 5, 6],
c;
c = b.concat(a); //将a加在b上,返回新数组,a和b并没有变。参数数量不限
console.log(b);
console.log(c);

二、jq数组

1、遍历

$.each(a, function(key, val) { //以jQuery对象的方法调用,兼容性好;也可以用$(a)将a转化为jquery对象,然后以$(a).each(function(){})的形式调用,下面的方法同
console.log(a[key] + '下标为' + key + '值为' + val);
});

2、筛选

var a = [1, 2, 3, 4];
$.grep(a, function(val, key) { //不能链式调用,返回[],所以可以加上return实现链式,返回满足条件的副本
  if (a[key] > 2) {
    console.log(key);
  }
  return val;
});
常用做获取两个数组中相同(或不相同)的部分
var a= [1, 2, 3, 4],
b=[1,3,5,7];
$.grep(a,function(val,key){
if(b.indexOf(val)>=0){
return val;
}
},false);

3.转换

var a = [1, 2, 3, 4];
$.map(a, function(val, key) { //不能链式调用,返回[],同grep加上return即可放回副本
if (a[key] > 2) {
a[key]=val+1;
}
return val; //可以链式调用,返回处理后的数组(也可用于筛选)
});

4.合并

var a=[1,2,3],
b=[4,5,6];
$.merge(a,b);

5.过滤相同元素

var a = [ 1 , 1 , 2 , 3 , 7 , 4 , 5 , 5 , 6 , 6 ];
$.unique(a)

6.判断

var a = [1, 2, 3, 4];
$.inArray(2, a); //有的话返回下标,没有的话返回-1

三、数组去重
http://www.cnblogs.com/jq-melody/p/4505290.html

相关文章

网友评论

      本文标题:js、jquery 数组使用

      本文链接:https://www.haomeiwen.com/subject/vbydnttx.html