JavaScript在Array数组中按指定位置删除或添加元素对象


发布者 ourjs  发布时间 1574084865071
关键字 JavaScript 

JavaScript的数据中可通过splice/slice在指定位置添加或删除元素。另外还有slice、delete等方法实现。

splice简介

splice方法向/从数组中添加/删除项目,然后返回被删除的项目。该方法会改变原始数组。

 arrayObject.splice(index, howmany, item1, ..., itemX)

参数 描述

index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。

 


使用示例

删除第3个元素

var arr = [1, 2, 3, 4, 5];
arr.splice(2, 1);
console.log(arr) //[1, 2, 4, 5]

删除开始的3个元素

var arr = [1, 2, 3, 4, 5];
arr.splice(0, 3);
console.log(arr); //[4, 5]

在第2个元素后,添加新数字 9

var arr = [1, 2, 3, 4, 5];
arr.splice(2, 0, 9);
console.log(arr) //[1, 2, 9, 3, 4, 5]


Array.insert 添加

借助splice可以在array上面添加一个原生的insert方法,直接操作数组:

Array.prototype.insert = function(index) {
index = Math.min(index, this.length);
arguments.length > 1
&& this.splice.apply(this, [index, 0].concat([].pop.call(arguments)))
&& this.insert.apply(this, arguments);
return this;
};

使用示例

var arr = [1, 2, 3, 4, 5];
arr.insert(2, -1, -2, -3);
console.log(arr); // [1, 2, -1, -2, -3, 3, 4, 5]

Array.remove 删除

也可以用slice在array上面添加一个原生的remove方法

Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};

使用,删除第3个元素

var arr = [1, 2, 3, 4, 5];
arr.remove(2); //第3个元素索引是2
console.log(arr); //[1, 2, 4, 5]

 

这里使用了slice方法,简介如下:

 

slice简介

slice() 方法可从已有的数组中返回选定的元素。返回一个新数组,不修改原有数组。

arrayObject.slice(start,end)
 

参数描述

start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

 









 热门文章 - 分享最多
  1. Linux下的tar压缩解压缩命令详解,创建解压目录到.tar.gz包
  2. Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
  3. CentOS注册系统服务,添加自动启动脚本
  4. 用OnceOA旺司在树莓派等arm设备免费搭建私有云版有道云笔记文档管理系统,在线编辑Markdown,同步备份手机照片
  5. node.js含有%百分号时,发送get请求时浏览器地址自动编码的问题
  6. Node.JS用纯JavaScript生成图片或滑块式验证码
  7. 树莓派ARM开发板使用TF卡启动和系统安装到EMMC启动,硬盘存储读写速度对比测试
  8. Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
  9. 在Windows平台上用命令行创建tar.gz压缩包和解压
  10. node.js函数如何获取调用者的文件目录路径: 用callsite获取错误堆栈的每一层文件名及路径

 相关阅读
  1. 让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
  2. Facebook发布全新JavaScript引擎Hermes:越来越像Java字节码,JS要统一全端?
  3. 在嵌入式设备树莓派上编译QuickJS教程:一个C语言编写的极简JavaScript引擎
  4. 使用JavaScript的Proxy监听对象属性变化并进行类public/private的访问控制
  5. JavaScript求一个字符串的字节长度
  6. JavaScript中将字符串true或false转换成Boolean类型
  7. jQuery用$.prop,$.attr方法来获取或设置checkbox当前选中状态
  8. Node.JS中用concat和push连接两个或多个数组的性能比较
  9. 判断是否为对象typeof abc == 'object' 与 instanceof 性能比较
  10. typeof判断参数是否为undefined与全等判断法性能比较

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA