本文详细介绍JavaScript中数组成员的添加与删除方法。包括直接赋值、push、unshift添加元素,以及pop、shift、delete删除元素的区别。重点解析length属性对数组截取和扩展的影响,以及writable:false时的限制行为,帮助开发者掌握数组操作核心技巧。
JavaScript数组元素的增删改操作详解
在JavaScript中,数组的长度并非固定不变,这意味着开发者可以直接通过索引定义新成员来向数组追加数据。
具体实现方式如下:
var o = [2,3,5];
o[3] = 7;
console.log(o);//[2,3,5,7]除了直接索引赋值,还可以利用push()方法实现相同效果。
相关代码示例:
o.push(11);
console.log(o);//[2,3,5,7,11]
o.push(13,17);
console.log(o);//[2,3,5,7,11,13,17]若需向数组起始位置插入新元素,应使用unshift()方法。
代码示例如下:
o.unshift(2014);
console.log(o);//[2014,2,3,5,7,11,13,17]
o.unshift(2013, 2012);
console.log(o);//[2013,2012,2014, 2,3,5,7,11,13,17]与push()方法相对应,若要从数组末尾移除元素,可使用pop()。该方法会返回被移除的元素,并使数组长度减1。
示例代码如下:
var p = o.pop();
console.log(p);//17
console.log(o.length);//9与unshift()对应,若要从数组头部移除元素,可使用shift()。该方法同样返回被移除的元素,并使数组长度减1。
代码示例:
var s = o.shift();
console.log(s);//2013
console.log(o.length);//8
除shift()和pop()外,还可使用delete操作符删除数组成员。与前者不同,delete操作后数组的length属性保持不变,导致数组出现空洞(不连续)。
JavaScript还允许通过修改数组的length属性来调整数组。当length值小于当前成员数时,数组会被截断;当length值大于成员数时,数组会变为不连续状态。若length属性被设为只读,直接定义新成员的操作将失效。
代码演示如下:
console.log(o);//[2012,2014, 2,3,5,7,11,13]
o.length = 2;
console.log(o);//[2012,2014]
o.length = 4;
console.log(o);//[2012,2014,undefined,undefined]
var a = [1,2,3];
Object.defineProperty(a, "length", {writable:false});
a[3] = 4;
console.log(a);//[1,2,3]