查了百度和谷歌,发现在JavaScript中对Json的增,改,查的资料比较多,但删除操作的基本上没有.
因此,本人采用了一个比较笨的方法实现了Json的删除操作.以期能够抛砖引玉...谢谢!!<script type="text/javascript">
//根据索引值删除数组中指定的数据
function del(index, dataArray){
var len=dataArray.length;
for(var i=0;i<len;i=i+1){
if(i==(index-1)){
for(var j=i+1;j<len;j=j+1){
//当前索引值后的数据都向前移
dataArray[j-1]=dataArray[j];
}
//移完之后,自身长度减1
dataArray.length--;
}
}
} var data=[{
name:'111',
email:'[email protected]'
},{
name:'222',
email:'[email protected]'
},{
name:'333',
email:'[email protected]'
}];
del(1,data); //删除第一条之后则第一条为222,第二条为333
del(1,data); //此时再删除第一条(name为222),则第一条为333
//特别说明:del方法中的第二个参数是一个数组,因此相当于是传引用
alert("length:"+data.length); //删除2项后应该只为1了
alert("name:"+data[0].email); //显示为[email protected]
alert("email:"+data[1].name); //调用非法(会显示为空或不是对象的错误提示)
</script>
在下已经把砖扔出来了,剩下的就看大家的了...
因此,本人采用了一个比较笨的方法实现了Json的删除操作.以期能够抛砖引玉...谢谢!!<script type="text/javascript">
//根据索引值删除数组中指定的数据
function del(index, dataArray){
var len=dataArray.length;
for(var i=0;i<len;i=i+1){
if(i==(index-1)){
for(var j=i+1;j<len;j=j+1){
//当前索引值后的数据都向前移
dataArray[j-1]=dataArray[j];
}
//移完之后,自身长度减1
dataArray.length--;
}
}
} var data=[{
name:'111',
email:'[email protected]'
},{
name:'222',
email:'[email protected]'
},{
name:'333',
email:'[email protected]'
}];
del(1,data); //删除第一条之后则第一条为222,第二条为333
del(1,data); //此时再删除第一条(name为222),则第一条为333
//特别说明:del方法中的第二个参数是一个数组,因此相当于是传引用
alert("length:"+data.length); //删除2项后应该只为1了
alert("name:"+data[0].email); //显示为[email protected]
alert("email:"+data[1].name); //调用非法(会显示为空或不是对象的错误提示)
</script>
在下已经把砖扔出来了,剩下的就看大家的了...
2).关于del函数中并未做下标检查操作.
var j={n:'showbo'};
alert(j.n)
delete j.n
alert(j.n)var js=[{n:'showbo'},{n:'showbo'}];
alert(js[0].n)
delete js[0].n;
alert(js[0].n)
json的基本操作。
- -·
json其实就是对象, 删除他里面的东西就是 delete jsonObject.member
这位爷, 你typeof一个json对象看看他到底是object还是string还是什么..
好像可以
delete只能value对象,但是key还是一样存在。比如
var aa = {a:"aaa",b:"bbb"};
delete aa[b]只能删掉value“bbb”,而key b 还是存在于aa中
var aa = {a:"aaa",b:"bbb"};
delete aa[b]只能删掉value“bbb”,而key b 还是存在于aa中。
另外,楼主的做法是数组删除,只是数组的元素是json对象而已,跟json删除一点关系都没有。数组删除用splice就可以了,根本不用这么麻烦。