jquery的对象数组的添加元素,删除元素
2018-09-07
jquery对象数组
小弟今天遇到一个jQuery数组对象的问题,添加进去,遍历失败,找不到什么原因 报错原因(SyntaxError: missing ; after for-loop initializer),最后... 认真看代码,百度上面找原因,果断解决了.
找问题的同时找到了几个比较有用的东西,拿下来留着,万一以后有用!
/**
* 从对象数组中删除属性为objPropery,值为objValue元素的对象
* @param Array arrPerson 数组对象
* @param String objPropery 对象的属性
* @param String objPropery 对象的值
* @return Array 过滤后数组
*/
function remove(arrPerson,objPropery,objValue)
{
return $.grep(arrPerson, function(cur,i){
return cur[objPropery]!=objValue;
});
}
/**
* 从对象数组中获取属性为objPropery,值为objValue元素的对象
* @param Array arrPerson 数组对象
* @param String objPropery 对象的属性
* @param String objPropery 对象的值
* @return Array 过滤后的数组
*/
function get(arrPerson,objPropery,objValue)
{
return $.grep(arrPerson, function(cur,i){
return cur[objPropery]==objValue;
});
}
/**
* 显示对象数组信息
* @param String info 提示信息
* @param Array arrPerson 对象数组
*/
function showPersonInfo(info,arrPerson)
{
$.each(arrPerson, function(index,callback){
info+="Person id:" + arrPerson[index].id + " name:" + arrPerson[index].name+ " sex:"+ arrPerson[index].sex+" age:"+ arrPerson[index].age+"/r/t";
});
alert(info);
}
//测试数据
var arrPerson=new Array();
var person=new Object();
person.id=1;
person.name="帅哥";
person.sex="男";
person.age=30;
arrPerson.push(person);
person=new Object();
person.id=2;
person.name="美眉甲";
person.sex="女";
person.age=28;
arrPerson.push(person);
person=new Object();
person.id=3;
person.name="美眉乙";
person.sex="女";
person.age=20;
arrPerson.push(person);
//测试删除
showPersonInfo("原始数组:/r/t",arrPerson);
arrPerson=remove(arrPerson,"id",1);
showPersonInfo("删除之后:/r/t",arrPerson);
//测试获取
arrPerson=get(arrPerson,"id",3);
showPersonInfo("只获取ID为3的元素:/r/t",arrPerson);
$.each遍历对象、数组的属性值并进行处理
通过$.each,可以遍历对象、数组的属性值并进行处理,下面有个示例,需要的朋友可以参考下
通过它,你可以遍历对象、数组的属性值并进行处理。
使用说明
each函数根据参数的类型实现的效果不完全一致:
1、遍历对象(有附加参数)
1
2
3
4
$.each(Object, function(p1, p2) {
this;//这里的this指向每次遍历中Object的当前属性值
p1; p2; //访问附加参数
}, ["参数1","参数2"]);
2、遍历数组(有附件参数)
1
2
3
4
$.each(Array, function(p1, p2){
this;//这里的this指向每次遍历中Array的当前元素
p1; p2; //访问附加参数
}, ["参数1","参数2"]);
3、遍历对象(没有附加参数)
1
2
3
4
5
$.each(Object, function(name, value) {
this;//this指向当前属性的值
name; //name表示Object当前属性的名称
value; //value表示Object当前属性的值
});
4、遍历数组(没有附加参数)
1
2
3
4
5
$.each(Array, function(i, value) {
this;//this指向当前元素
i; //i表示Array当前下标
value; //value表示Array当前元素
});
下面提一下jQuery的each方法的几种常用的用法
Js代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var arr = [ "one", "two", "three","four"];
$.each(arr, function(){
alert(this);
});
//上面这个each输出的结果分别为:one,two,three,four
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]
$.each(arr1, function(i, item){
alert(item[0]);
});
//其实arr1为一个二维数组,item相当于取每一个一维数组,
//item[0]相对于取每一个一维数组里的第一个值
//所以上面这个each输出分别为:1 4 7
var obj = { one:1, two:2, three:3, four:4};
$.each(obj, function(key, val) {
alert(obj[key]);
});
//这个each就有更厉害了,能循环每一个属性
//输出结果为:1 2 3 4
jquery 数组 添加元素
在前提不知道b在这个数组的下标,删除b这个元素
var arrList = ["a","b","c","d"];
arrList.splice(jQuery.inArray("b",arrList),1);
alert(arrList);
其中jQuery.inArray("b",arrList)是b这个元素在数组arrList 中的位置
splice(index,1)函数中第一个参数index是要删除元素在数组中的位置,第二个参数是要删除的数量。
Array对象的方法有:
concat() 连接两个或更多的数组,并返回结果。
join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop() 删除并返回数组的最后一个元素。
push() 向数组的末尾添加一个或更多元素,并返回新的长度。
reverse() 颠倒数组中元素的顺序。
shift() 删除并返回数组的第一个元素
slice() 从某个已有的数组返回选定的元素
sort() 对数组的元素进行排序
splice() 删除元素,并向数组添加新元素。
toSource() 返回该对象的源代码。
toString() 把数组转换为字符串,并返回结果。
toLocaleString() 把数组转换为本地数组,并返回结果。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
valueOf() 返回数组对象的原始值。
var arrList = new Array();
arrList.push("abc");
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join())
参考地址:http://www.w3school.com.cn/jsref/jsref_obj_array.asp
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。
http://www.pinlue.com/style/images/nopic.gif