js如何往数组Array中添加删除元素

本文详细介绍了JavaScript数组的基本操作方法,包括创建、访问、添加、删除、截取、合并、拷贝及排序等。并通过实例展示了如何使用这些方法来高效地处理数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:https://www.tmico.cn/wordpress/?p=222

数组常用方法:

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

2.push
将参数添加到原数组末尾,并返回数组的长度 

3.concat
返回一个新数组,是将参数添加到原数组中构成的 

4.splice(start,deleteCount,val1,val2,...)
从start位置开始删除deleteCount项,并从该位置起插入val1,val2,...

5.reverse
将数组反序

6.sort(orderfunction)
按指定的参数对数组进行排序

7.slice(start,end)
返回从原数组中指定开始下标到结束下标之间的项组成的新数组

案例:

1.数组的创建

var arrayObj = new Array(); //创建一个数组

var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度

var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 创建一个数组并赋值

要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

2.数组的元素的访问

var testGetArrValue=arrayObj[1]; //获取数组的元素值

arrayObj[1]= "这是新值"; //给数组元素赋予新的值

3.数组元素的添加

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度

arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度

arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

4.数组元素的删除

arrayObj.pop(); //移除最后一个元素并返回该元素值

arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移

arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

5.数组的截取和合并

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

6.数组的拷贝

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向

arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

7.数组元素的排序

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址

arrayObj.sort(); //对数组元素排序,返回数组地址

8.数组元素的字符串化

arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。

toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用
<think>我们正在讨论JavaScript数组添加元素的方法。根据引用内容,我们可以总结几种主要方法:引用[1]提到了pop()方法(删除最后一个元素),但我们的重点是添加元素。引用[3]提到了unshift()方法,它可以在数组头部添加一个或多个元素,并将已有元素向后移动。另外,我们还需要补充其他常用方法。常见的向数组添加元素的方法包括:1.push()-在数组末尾添加一个或多个元素,并返回新的长度。2.unshift()-在数组开头添加一个或多个元素,并返回新的长度。3.splice()-在指定位置添加删除元素。此外,还可以通过直接赋值的方式添加(如果索引是连续的),但要注意如果索引不连续可能会产生稀疏数组。下面分别举例说明:方法1:push()语法:array.push(item1,item2,...,itemX)示例:letarr=[1,2];arr.push(3);//arr变为[1,2,3]arr.push(4,5);//arr变为[1,2,3,4,5]方法2:unshift()语法:array.unshift(item1,item2,...,itemX)示例:letarr=[3,4];arr.unshift(1,2);//arr变为[1,2,3,4]方法3:splice()语法:array.splice(start,deleteCount,item1,item2,...)其中,deleteCount设置为0,然后添加元素。示例:letarr=[1,2,5];//在索引2的位置(即第三个位置)删除0个元素,然后添加3和4arr.splice(2,0,3,4);//arr变为[1,2,3,4,5]另外,还可以通过索引直接添加,但通常用于已知长度的数组或者覆盖已有元素,如果要添加的位置超出当前数组长度,则数组会自动扩展,中间未赋值的元素为empty(稀疏数组)。示例:letarr=[1,2,3];arr[3]=4;//arr变为[1,2,3,4]arr[5]=6;//arr变为[1,2,3,4,empty,6]注意:arr[4]是undefined但是,直接通过索引赋值在中间插入元素不方便,因为会导致中间出现空位,所以一般使用splice方法。总结:-末尾添加:push()-开头添加:unshift()-中间插入:splice()引用[3]中提到的unshift()方法可以添加多个参数,并且已有元素会向后移动。注意:push()和unshift()都会改变原数组,并返回数组新的长度。根据引用[2]的内容,我们还可以扩展数组方法(如添加自定义的删除方法),但这不是添加元素的方法,所以不展开。因此,回答用户的问题:向数组添加元素的主要方法有push、unshift和splice。下面用代码示例展示这三种方法:</think>### JavaScript数组添加元素的方法 在 JavaScript 中,向数组添加元素是常见操作。以下是几种主要方法及其特点: #### 1. **`push()` - 尾部添加元素** ```javascript let arr = [1, 2, 3]; arr.push(4); // 添加单个元素 → [1,2,3,4] arr.push(5, 6); // 添加多个元素 → [1,2,3,4,5,6] console.log(arr); // 输出: [1,2,3,4,5,6] ``` **特点**: - 修改原数组 - 返回新数组长度 - 时间复杂度 $O(1)$ #### 2. **`unshift()` - 头部添加元素** ```javascript let arr = [4, 5]; arr.unshift(3); // 头部添加 → [3,4,5] arr.unshift(1, 2); // 添加多个 → [1,2,3,4,5] console.log(arr); // 输出: [1,2,3,4,5] ``` **特点**: - 已有元素向后移动[^3] - 返回新数组长度 - 时间复杂度 $O(n)$ #### 3. **`splice()` - 指定位置插入** ```javascript let arr = ['A', 'B', 'D']; // 在索引2处插入'C'(不删除元素) arr.splice(2, 0, 'C'); console.log(arr); // 输出: ['A','B','C','D'] // 在索引1处插入两个元素 arr.splice(1, 0, 'X', 'Y'); console.log(arr); // 输出: ['A','X','Y','B','C','D'] ``` **参数说明**: `splice(起始索引, 删除元素数量, 要插入的元素...)` #### 4. **直接索引赋值** ```javascript let arr = [10, 20]; arr[arr.length] = 30; // 尾部添加 → [10,20,30] arr[3] = 40; // 等价于push → [10,20,30,40] console.log(arr); // 输出: [10,20,30,40] ``` **注意**:跳过索引会产生空位(稀疏数组): ```javascript arr[10] = 100; console.log(arr); // [10,20,30,40, <6 empty items>, 100] ``` #### 5. **扩展运算符(ES6)** ```javascript let arr1 = [1, 2]; let arr2 = [3, 4]; let newArr = [...arr1, ...arr2, 5]; console.log(newArr); // [1,2,3,4,5](不修改原数组) ``` #### 性能比较: | 方法 | 时间复杂度 | 适用场景 | |-------------|------------|-----------------------| | `push()` | $O(1)$ | 尾部添加(最优) | | `unshift()` | $O(n)$ | 头部添加(性能较差) | | `splice()` | $O(n)$ | 任意位置插入 | > **最佳实践**: > - 优先使用 `push()` 进行尾部添加 > - 避免连续使用 `unshift()`(多次操作性能差) > - 使用 `splice()` 进行精确位置插入
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值