JS 数组删除与 JSON 元素增删解析(附数组与 JSON 区别)

🕒 2026-01-04 16:38:43
📁 JSON学习教程
作者:JSONLA小编

  在前端数据处理中,数组和 JSON 是最基础的结构化数据载体,掌握其增删操作及核心差异是前端开发的必备能力。本文基于 ECMAScript 规范,拆解 JS 数组删除的 3 种核心方法、JSON 元素增删逻辑,并明确数组与 JSON 的本质区别,所有案例保留原始代码结构,确保实用性与严谨性。

一、JavaScript 数组删除:3 种核心方法

数组删除操作需根据删除位置(开头、结尾、中间)选择对应方法,shift()pop()适配首尾操作,splice()支持任意位置的精准操作。

1. shift ():删除数组第一项

shift()会删除原数组首个元素,返回被删除的值;若数组为空则返回undefined。  

var chaomao=[1,2,3,4,5]

var chaomao.shift()//得到1

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

核心特点:直接修改原数组,仅适用于删除数组开头元素,时间复杂度 O (n)(删除后后续元素需前移)。

2. pop ():删除数组最后一项

pop()删除原数组最后一个元素,返回被删除的值;数组为空时返回undefined。  

var chaomao=[1,2,3,4,5]

var chaomao.pop()//得到5

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

核心特点:直接修改原数组,仅适用于删除数组结尾元素,时间复杂度 O (1)(无需移动其他元素)。

3. splice ():灵活操作数组任意项

splice()是数组操作的 “万能方法”,支持任意位置的删除、添加、替换,参数规则为:splice(起始下标, 操作项数, 替换/添加的元素...)。  

修改操作:

var chaomao=[1,2,3,4,5]

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

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

解析:从下标 2(值为 3 的元素)开始,替换后续 1 项为 8、9,替换项数可与原项数不一致。

删除操作:

var chaomao=[1,2,3,4,5]

chaomao.splice(2,1)

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

解析:从下标 2 开始,删除后续 1 项,无替换元素即实现删除。

添加操作:

var chaomao=[1,2,3,4,5]

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

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

解析:从下标 2 开始,删除 0 项(仅占位),插入 8、9,实现指定位置添加元素。

二、JSON 元素的增删操作

JSON 本质是符合特定格式的 JS 对象,其元素增删依赖对象操作语法,核心为delete操作符(删除)和赋值语法(添加)。

1. 删除 JSON 元素:delete 操作符

delete可删除 JSON 对象指定属性,删除后属性完全从对象中移除。  

var p ={

"name": “chaomao”,

"age":45,

"sex":"male"

};

delete p.name

for(var i in p){

console.log(i);//输出age,sex,name项已经被删除了

}

2. 添加 JSON 元素:两种赋值方式

var json = {}; // 如果json已经定义就跳过

json[text] = value;

json.text2 = value2;  // 此时text2必须符合变量名标准,否则得使用数组方式赋值

核心区别

  • json[text]:支持动态键名(如变量、特殊字符键名);
  • json.text2:仅支持合法变量名作为键名,语法更简洁。

三、JS 数组与 JSON 的核心区别

1. 数组:有序索引集合

  • 一维数组定义:
  • var s1=new Array();
    s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4;
    alert(s1[0]);

     二维数组定义:

     var s1=new Array();

     var s1=[[3,1],[2,3,4],3,[4,5,6,7,8]]; 

     alert(s1[1][0]);//结果为2

核心特征:通过数字索引访问,元素有序,可存储任意类型数据。

2. JSON:无序键值对集合

JSON 分为 “JSON 对象” 和 “JSON 字符串”,前者可直接操作,后者需转换后使用。

var status_process = {

" name5" : '闲置期',

"name1" : '播种期',

"name2" : '苗期',

"name3" : '生长期',

"name4" : '采收期'

 }    

alert(status_process);//结果为:Object:Object

JSON 字符串:需通过eval()转换为对象(后台返回的 JSON 多为此类型):  

var s1="{";

var s2 = " 'name5' : '闲置期',  'name1' : '播种期','name2' : '苗期','name3' : '生长期','name4' : '采收期'";

var s3="}";

var status_process=s1+s2 +s3;

JSON 对象使用:

var status_process = {

name5 : '闲置期',

name1 : '播种期',

name2 : '苗期',

name3 : '生长期',

name4 : '采收期'

};

alert(status_process["name5"]);

alert(status_process.name5);

两个都为:闲置期

二维 JSON 对象:

var status_process = {

name5 : '闲置期',

name1 : '播种期',

name2 : '苗期',

name3 : '生长期',

name4 : '采收期'

};

alert(status_process["name5"]);

alert(status_process.name5);

结果都为:'空闲闲置期'

核心特征:通过键名访问,元素无序,键名需为字符串(JSON 规范要求双引号)。

核心总结

  1. 数组删除:首尾用shift()/pop(),中间 / 精准操作用splice();
  2. JSON 增删:添加用赋值语法,删除用delete操作符;
  3. 核心差异:数组是有序索引集合,JSON 是无序键值对集合,后台返回的 JSON 字符串需转换为对象后操作。


相关推荐

正在加载... ...