js与jquery常用数组方法总结
一.原生js方法
1.遍历数组和对象遍历属性 in
var a = [1, 2, 3];
for (x in a) {
console.log(x);// 0 1 2
}
2.合并数组 concat
var a = [1, 2, 3],
b = [4, 5, 6],
c;
c = b.concat(a); //将a加在b后,返回新数组,a和b并没有变。参数数量不限
console.log(b); // [4, 5, 6]
console.log(c); // [4, 5, 6, 1, 2, 3]
3.合并数组的值为字符串 join
var a = [1, 2, 3],
b = a.join('*'); //默认为之间加上 ,
console.log(a); // [1, 2, 3] //a并没有变
console.log(b); // 1*2*3
4.数组排序 sort
var a = [6, 2, 3, 'a', 'x', 20],
b = a.sort(); //ASC表顺序,先看首位,因此20排在3前面
console.log(a); // [2, 20, 3, 6, "a", "x"] //a变化了
console.log(b); // [2, 20, 3, 6, "a", "x"]
a.push('k');
console.log(b); // [2, 20, 3, 6, "a", "x", "k"] //a和b指向同一个对象,b相当于a的别名,所以 b 也变了
5.数组的模拟栈(FILO) 和队列(FIFO) 方法(均改变原来数组)
var a = [6, 2, 3, 'a', 'x', 20],
b = a.push('ab'), // 末尾添加元素,并返回新长度 7
c = a.pop(), // 删除并返回数组的最后一个元素 ab
d = a.unshift('xy'), // 开头添加元素,并返回新长度 7
e = a.shift(); // 删除并返回数组的第一个元素 xy
6.数组反序 reverse
var a = [6, 2, 3, 'a', 'x', 20],
b = a.reverse(); // 返回a的引用
console.log(a); // [20, "x", "a", 3, 2, 6]
console.log(b); // [20, "x", "a", 3, 2, 6]
7.取数组中需要的部分 slice
var a = [6, 2, 3, 'a', 'x', 20],
b = a.slice(0, 2); //下标从0取到2(不包括2),没有第二个参数则默认到末尾。第一个参数为负表示从末尾开始数。第一个参数小于第二个参数则为空。
console.log(a); //[6, 2, 3, 'a', 'x', 20]
console.log(b); // [6, 2] //b是a一部分的副本,a本身不变
8.修改数组 splice
var a = [1, 2, 3, 4],
b = a.splice(0, 2, 6);
console.log(a); // [6, 3, 4]
console.log(b); // [1, 2] //b为被删掉的数组部分
a.splice(index, num, newItem1, newItem2…)
index为开始选择的元素下标
num为接下来要删除元素的个数
newItem为接下来(在删完的地方)要添加的新元素(非必须)。
删除指定下标(2,也就是第三个)元素,此时不设置需要添加的newItem,而num设为1
var a = [1, 2, 3, 4],
b = a.splice(2, 1);
console.log(a); // [1, 2, 4]
console.log(b); // [3]
在任意位置添加任意多个元素(如在下标2后添加两个元素’7’,’8’),此时num设为0
var a = [1, 2, 3, 4],
b = a.splice(2, 0, 7, 8);
console.log(a); //[1, 2, 7, 8, 3, 4]
console.log(b); //没有删除,b返回[]
元素值删除元素(结合jquery)
var a=[1,2,3,4];
a.splice($.inArray(2,a), 1);
console.log(a); // [1, 3, 4]
修改自身的有: splice, pop, push, shift, unshift, sort, reverse
不修改自己身的: slice, concat, join
二.Jquery常用js方法
遍历
可以对所有的元素进行操作。如果想要满足条件退出,用return false( 绝大部分jquery方法都可以这么退出)。
$.each(arr, callback(key, val)); //可以链式调用,返回arr,为本身
var a = [1, 2, 3, 4];
$.each(a, function(key, val) {
//以jQuery对象的方法调用,兼容性好;
console.log(a[key] + '下标为' + key + '值为' + val);
});
合并
var a=[1,2,3],
b=[4,5,6];
$.merge(a,b);
过滤相同元素
$.unique(arr)//过滤Jquery对象数组中重复的元素(内部实现为===)
var a = [ 1 , 1 , 2 , 3 , 7 , 4 , 5 , 5 , 6 , 6 ];
$.unique(a)
判断
$.inArray(val,arr) //val是否在arr里面
var a = [1, 2, 3, 4];
$.inArray(2, a); //有的话返回下标,没有的话返回-1
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: