首先要搞清JSON的数据格式,我这里所说的JSON都是指javascript中的。

JSON数据是由对象和数组数据结构组成,我们只要学会javascript中对对象和数组的删除方法即可对JSON项进行删除操作

javasscript删除数组的3种方法

1,用shift()方法

shift:删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined

  • var chaomao=[1,2,3,4,5]
  • var chaomao.shift() //得到1
  • alert(chaomao) //[2,3,4,5]
var chaomao=[1,2,3,4,5]

var chaomao.shift() //得到1

alert(chaomao) //[2,3,4,5]

2,用pop()方法

pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined

  • var chaomao=[1,2,3,4,5]
  • var chaomao.pop() //得到5
  • alert(chaomao) //[1,2,3,4]
var chaomao=[1,2,3,4,5]

var chaomao.pop() //得到5

alert(chaomao) //[1,2,3,4]

前面的方法只能操作数组开头和结尾,无法操作中间项,如果要操作中间的项,使用splice方法

3,用splice方法

这个方法很强大,可以对数组任意项进行增加,删除,替换操作

修改操作:

  • var chaomao=[1,2,3,4,5]
  • chaomao.splice(2,1,8,9)
  • alert(chaomao) //1,2,8,9,4,5
var chaomao=[1,2,3,4,5]

chaomao.splice(2,1,8,9)

alert(chaomao) //1,2,8,9,4,5

第一个参数是准备操作的数组位置,第二个参数是操作位置后面的数组项数,第三个以后的就是,被替换后的内容

例子就是表示:从chaomao这个数组位置2开始(也就是值为3的那一项,数组下标从0开始的),位置2后的一项,替换成成8,9

如果把第二个参数改为2,也就是chaomao.splice(2,2,8,9),也就是说位置2后面的两项换成8,9,打印出来的结果就是1,2,8,9,5,3和4这2两项被换掉了

这里需要说明的是,被替换的项数不一定要和替换的项数相等,1项可以被换成3项,5项也可以被换成2项,基于这个原理,我们就用这个方法来对数组进行添加和删除操作

删除操作:

  • var chaomao=[1,2,3,4,5]
  • chaomao.splice(2,1)
  • alert(chaomao) //1,2,4,5
var chaomao=[1,2,3,4,5]

chaomao.splice(2,1)

alert(chaomao) //1,2,4,5

上面例子中,把chaomao中的位置2后的1项替换成空的,因为后面没有内容,结果可以看到,把3这项删除了

添加操作:

  • var chaomao=[1,2,3,4,5]
  • chaomao.splice(2,0,8,9)
  • alert(chaomao) //1,2,8,9,3,4,5
var chaomao=[1,2,3,4,5]

chaomao.splice(2,0,8,9)

alert(chaomao) //1,2,8,9,3,4,5

上面例子中,把chaomao中位置2后的0项换成8,9,也就等于添加了两项

其实,删除和添加操作都只是splice修改方法的两种衍生罢了 其他不靠谱的数组删除方法

之所以说不靠谱,是因为它没有真正删除数组项,而是是把它设置为空了,项本身的位置还在,数组项数没变

不靠谱的数组删除方法1:

  • var chaomao = [1,2,3,4,5];
  • chaomao[1]=null;
  • alert(chaomao.length); //5
var chaomao = [1,2,3,4,5];

chaomao[1]=null;

alert(chaomao.length); //5

打印出的项数还是5,并没有删除它,只是把chaomao[1]这一项值设为null,chaomao[1]=undefined,这中方法也是一样,并没有删除数组项

不靠谱的数组删除方法2:

  • var chaomao = [1,2,3,4,5];
  • delete chaomao[1];
  • alert(chaomao.length); //5
var chaomao = [1,2,3,4,5];

delete chaomao[1];

alert(chaomao.length); //5

和方法1的结果一样,并没有真正删除它,而只是把这一项设为undefined

javascript删除对象的方法

js中删除对象元素用delete操作符

我们来看看一个例子

  • var p = {
  • "name": “chaomao”,
  • "age": 45,
  • "sex": "male"
  • };
  • delete p.name
  • for(var i in p){
  • console.log(i); //输出age,sex,name项已经被删除了
  • }
var p = {
"name": “chaomao”,
"age": 45,
"sex": "male"
}; delete p.name
for(var i in p){
console.log(i); //输出age,sex,name项已经被删除了
}

javascript删除JSON元素

前面我们已经会了JS删除对象和数组的方法 我们下面进对一个具体的JSON数据进行操作

  • var computer = { //这个JSON数据由数组和对象结构组成
  • "cpu": ["intel","AMD"],
  • "harddisk": ["Western Digital","Seagate"],
  • "motherboard": ["ASUS","MSI"]
  • };
var computer = { //这个JSON数据由数组和对象结构组成
"cpu": ["intel","AMD"],
"harddisk": ["Western Digital","Seagate"],
"motherboard": ["ASUS","MSI"]
};

如果我们要删除CPU里面里intel这一个元素,因为这是数组里面的一项,所以我们用数组方法

  • computer.cpu.splice(0,1)
  • console.log(computer.cpu) //输出AMD,intel被删除了
computer.cpu.splice(0,1)
console.log(computer.cpu) //输出AMD,intel被删除了

我们如果想删除harddisk这一项,因为它是对象的一项,所以我们要用对象的删除方法进行操作

  • delete computer.harddisk
  • for(var i in computer){
  • console.log(i) //输出CPU,motherboard,harddisk被删除了
  • }
delete computer.harddisk
for(var i in computer){
console.log(i) //输出CPU,motherboard,harddisk被删除了
}

总结:JSON的主要数据结构是对象和数组,我们只要对相应的项的结构,进行相应的操作方法,就可以方便的删除JSON元素

javascript删除JSON元素的更多相关文章

  1. 【JSON】JavaScript删除json元素

    1.json中的两种结构:对象{}和数组[] 2.直接delete json对象[元素名称].

  2. Javascript 删除tr 元素

    Javascript 删除tr 元素   function delete1(obj){ var tr=obj.parentNode.parentNode; var tbody=tr.parentNod ...

  3. javascript删除数组元素的7个方法

    在JavaScript中,除了Object之外,Array类型(数组)恐怕就是最常用的类型了.与其他语言的数组相比,JavaScript中的Array非常灵活.这种灵活性有利有弊,好处是其富有创造性, ...

  4. JSON相关知识,转载:删除JSON中数组删除操作

    一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = ...

  5. 用Javascript动态添加删除HTML元素实例 (转载)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. 在Javascript操作JSON对象,增加 删除 修改

    在Javascript操作JSON对象,增加删除修改全有的,详情见代码 <script type="text/javascript"> var jsonObj2 = { ...

  7. javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)

    主要内容: 1.数组整体元素修改 2. 数组筛选 3.jquery 元素转数组 4.获取两个数组中相同部分或者不同部分 5.数组去重并倒序排序 6.数组排序 7.数组截取slice 8.数组插入.删除 ...

  8. JS中彻底删除json对象组成的数组中的元素

    只是分享一个小知识~ 在JS中,对于某个由json对象组成的数组,例如: var test = [{ "a": "1", "b": &quo ...

  9. Javascript根据指定下标或对象删除数组元素

    删除数组元素在工作中经常会用到,本文讲解一下Javascript根据下标删除数组元素的方法,需要了解的朋友可以参考下 将一下代码放在全局js文件中: Js代码 /** *删除数组指定下标或指定对象 * ...

随机推荐

  1. Hibernate 延迟加载的代理模式 和 Spring AOP的代理模式

    Hibernate 延迟加载的代理模式 和 Spring AOP的代理模式 主题 概念 Hibernate 延迟加载的代理模式 Spring AOP的代理模式 区别和联系 静态代理和动态代理 概念 代 ...

  2. js特殊字符过滤

    //匹配中文 数字 字母 下划线 var checkInput = function (str) { var pattern =var pattern = /^[\w\u4e00-\u9fa5]+$/ ...

  3. VS2015 如何打印出 类的内存布局?

    项目->属性->C/C++->命令行 添加如下内容: /d1 reportAllClassLayout [XXX] XXX 可选,代表源文件名,例如 main.cpp 或 /d1 r ...

  4. django startapp报 maximum recursion depth exceeded

    报错截图如下: 解决办法:修改指定路径下的functools.py文件的def total_ordering(cls):方法: 原来的样子: convert = { '__lt__': [('__gt ...

  5. 超详细:CSS-float详解

    Float 详解 本文摘自:http://www.cnblogs.com/yuanchenqi/articles/5615774.html 首先要知道,div是块级元素,在页面中独占一行,自上而下排列 ...

  6. 【转载】Java中使用Jedis操作Redis

    1 package com.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Li ...

  7. python 使用pip install 手动安装本地包的方法

    Installing pystan manually fixed the issue (otherwise it would just hang forever). ~/GitHub $ git cl ...

  8. 剑指offer 面试49题

    面试49题: 题:丑数 题目:把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N ...

  9. linux 后台进程管理利器supervisor

    Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启.   ...

  10. IMG图片下面出现空格、下边距的解决办法

    放图片的时候总有一个间隔,加上div看,是图片未充满div.最后父级元素加了一个 font-size:0,去掉了间隔. <div class="cut-img" style= ...