解析javascript 數(shù)組(以及json元素的添加刪除)

2022-05-17 14:52 更新

javasscript刪除數(shù)組的3種方法

1、用shift()方法

shift:刪除原數(shù)組第一項,并返回刪除元素的值;如果數(shù)組為空則返回undefined

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

2、用pop()方法

pop:刪除原數(shù)組最后一項,并返回刪除元素的值;如果數(shù)組為空則返回undefined

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

前面的方法只能操作數(shù)組開頭和結(jié)尾,無法操作中間項,如果要操作中間的項,使用splice方法

3、用splice方法

這個方法很強(qiáng)大,可以對數(shù)組任意項進(jìn)行增加,刪除,替換操作

修改操作:

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

第一個參數(shù)是準(zhǔn)備操作的數(shù)組位置,第二個參數(shù)是操作位置后面的數(shù)組項數(shù),第三個以后的就是,被替換后的內(nèi)容
例子就是表示:從chaomao這個數(shù)組位置2開始(也就是值為3的那一項,數(shù)組下標(biāo)從0開始的),位置2后的一項,替換成成8,9
如果把第二個參數(shù)改為2,也就是chaomao.splice(2,2,8,9),也就是說位置2后面的兩項換成8,9,打印出來的結(jié)果就是1,2,8,9,5,3和4這2兩項被換掉了
這里需要說明的是,被替換的項數(shù)不一定要和替換的項數(shù)相等,1項可以被換成3項,5項也可以被換成2項,基于這個原理,我們就用這個方法來對數(shù)組進(jìn)行添加和刪除操作

刪除操作:

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

上面例子中,把chaomao中的位置2后的1項替換成空的,因為后面沒有內(nèi)容,結(jié)果可以看到,把3這項刪除了


添加操作:

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修改方法的兩種衍生罷了

javasscript刪除對象的方法

js中刪除對象元素用delete操作符
我們來看看一個例子

代碼如下:
var p ={
"name": “chaomao”,
"age":45,
"sex":"male"
};
delete p.name
for(var i in p){
console.log(i);//輸出age,sex,name項已經(jīng)被刪除了
}
添加json元素的方法
var json = {}; // 如果json已經(jīng)定義就跳過
json[text] = value;
json.text2 = value2;  // 此時text2必須符合變量名標(biāo)準(zhǔn),否則得使用數(shù)組方式賦值
代碼如下:
var json = {}; // 如果json已經(jīng)定義就跳過
json[text] = value;
json.text2 = value2;  // 此時text2必須符合變量名標(biāo)準(zhǔn),否則得使用數(shù)組方式賦值

js數(shù)組與json的區(qū)別

一、數(shù)組

1. 定義一維數(shù)組:

var s1=new Array();
s1=[1,2,3,4]或者s1[0]=1,s1[1]=2,s1[3]=3,s1[4]=4;
alert(s1[0]);
結(jié)果為1;


2.定義二維素組:

var s1=new Array();
var s1=[[3,1],[2,3,4],3,[4,5,6,7,8]];
alert(s1[1][0]);
結(jié)果為2;

二、定義json對象

1、json對象       
var status_process = {
" name5" : '閑置期',
"name1" : '播種期',
"name2" : '苗期',
"name3" : '生長期',
"name4" : '采收期'
 }    
alert(status_process);
結(jié)果為:Object:Object;

2、json字符串
所謂json字符串,是指該字符串變量的值與json的格式相同,但是不是json對象,比如:
var s1="{";
var s2 = " 'name5' : '閑置期',  'name1' : '播種期','name2' : '苗期','name3' : '生長期','name4' : '采收期'";
var s3="}";
var status_process=s1+s2 +s3;
雖然status_process的值符合json對象的格式,但是它不是對象,只是一個字符串(是拼湊出來的);
將字符串轉(zhuǎn)換為json對象使用函數(shù)eval,eval("(" + status_process+ ")");
結(jié)論:從后臺傳入到前臺的是json字符串,不是真正的json對象,因此需要使用eval函數(shù)轉(zhuǎn)換。
3、json對象的使用       
var status_process = {
name5 : '閑置期',
name1 : '播種期',
name2 : '苗期',
name3 : '生長期',
name4 : '采收期'
};
alert(status_process["name5"]);
alert(status_process.name5);
兩個都為:閑置期

4、json二維對象       
var status_process = {
 name5 : {name3:'空閑閑置期'},
 name1 : '播種期',
 name2 : '苗期',
 name3 : '生長期',
 name4 : '采收期'
};
alert(status_process["name5"]["name3"]);
alert(status_process.name5.name3);
結(jié)果都為:'空閑閑置期'
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號