很多与数组有关的任务听起来很简单,但实际情况并不总是如此,而开发人员在很多时候也用不到他。最近我碰到了这样一个需求: 将一个元素插入到现有数组的特定索引处。听起来很容易和常见,但需要一点时间来研究它。

// 原来的数组

var array = ["one", "two", "four"];

// splice(position, numberOfItemsToRemove, item)

// 拼接函数(索引位置, 要删除元素的数量, 元素)

array.splice(2, 0, "three");

array;  // 现在数组是这个样子 ["one", "two", "three", "four"]

如果你对扩展原生 JavaScript 不反感,那么可以将这个方法添加到数组原型(Array prototype)中:

Array.prototype.insert = function (index, item) {

  this.splice(index, 0, item);

};

var nums = ["one", "two", "four"];

nums.insert(2, 'three'); // 注意数组索引, [0,1,2..]

array   // ["one", "two", "three", "four"]

我对数组也进行过一些其他的修改,可能你已经看过了:

Arrays 非常的有用—— JavaScript中处理某些任务还是比较繁琐…… 必须编写比实际需要的更多的代码(code-heavy)。为了更方便,请收藏本文,或者将这些片段保存到你的工具箱吧!

在JS数组指定位置插入元素的更多相关文章

  1. 数组的操作。1,JS数组去重。2,把数组中存在的某个值,全部找出来。3在JS数组指定位置插入元素。。。

    1,数组去重 let arr = [1,2,3,4,5,6,1,2,3,'a','b','a']; let temp = []; // 作为存储新数组使用 for(let i = 0; i < ...

  2. js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素

    JS定义了一个json数据var test={name:"name",age:"12"};需要给test再添加一个字段,需要什么办法,可以让test的值为{na ...

  3. 如何在JS数组特定索引处指定位置插入元素?

    如何在JS数组特定索引处指定位置插入元素? 需求: 将一个元素插入到现有数组的特定索引处.听起来很容易和常见,但需要一点时间来研究它. // 原来的数组var array = ["one&q ...

  4. php 数组指定位置插入数据单元

      PHP array_splice() 函数 array_splice(array,offset,length,array) 参数 描述 array 必需.规定数组. offset 必需.数值.如果 ...

  5. JS基础用法-向数组指定位置插入对象

    在做省市区三级联动的时候,需要在省市区默认位置放上请选择字样. 由于后台的API接口返回的没有请选择字样,那么就需要给返回的数组手动增加请选择 代码如下 // 原来的数组 var array = [& ...

  6. js数组指定位置添加删除

    示例参考:http://www.w3school.com.cn/jsref/jsref_splice.asp

  7. ArrayLIst在指定位置插入的内部实现

    今天看到一个问题:ArrayList的add方法有两种使用,那么add到指定位置内部是怎么实现的? 发现自己对这块地方不熟悉,所以立马去看了ArrayList下的源码 // 第一个 public bo ...

  8. C++ std::vector指定位置插入

    使用vector,必须加上:#include <vector> 1.初始化vector,一般有这几种方式: std::vector<std::wstring> v1; //创建 ...

  9. 【转载】C#使用InsertRange方法往ArrayList集合指定位置插入另一个集合

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,ArrayList集合可存储多种数据类型的对象.在实际的开发过程中,我们可以使用InsertRange方法在ArrayList集合指 ...

随机推荐

  1. Python学习---字符串操作

    ### 截取字符串然后拼接 str = "Hello World!" str2 = str[:6] + "tyche !" print(str2) ===> ...

  2. C#基础-如何找到devenv的路径位置

    一.前言        今年开始安装了VS2017,有时候需要使用到脚本编译,奈何MS在VS2017上的脚本编译上不再支持VS2015那种 "%VS140COMNTOOLS%vsvars32 ...

  3. 利用java实现可远程执行linux命令的小工具

    在linux的脚本中,如果不对机器做其他的处理,不能实现在linux的机器上执行命令.为了解决这个问题,写了个小工具来解决这个问题. 后面的代码是利用java实现的可远程执行linux命令的小工具,代 ...

  4. (转)Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (三) —— SharePreferences

    除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...

  5. 解题:BZOJ 2673 World Final 2011 Chips Challenge

    题面 数据范围看起来很像网络流诶(滚那 因为限制多而且强,数据范围也不大,我们考虑不直接求答案,而是转化为判定问题 可以发现第二个限制相对好满足,我们直接枚举这个限制就可以.具体来说是枚举所有行中的最 ...

  6. CH3101 阶乘分解

    题目链接 分解\(n!\)的质因数,输出相应的\(p_i\)和\(c_i\). 其中\(1\leq n\leq 10^6\).   考虑每一个质因子 \(p\) 在 \(n!\) 中出现的次数.显然, ...

  7. App统计指标定义

    度量(指标) 定义 活跃用户 指启动应用的用户(去重,即1台设备打开多次会被计为1个活跃用户). 是衡量一个应用运营情况最基础的一个指标,用以表示用户规模.通常根据不同的时间限定,有日活跃用户.周活跃 ...

  8. 执行ldconfig命令后报错的解决过程:ldconfig: 目录 /lib 中的 libpng.so 和 libpng15.so.15.13.0 的 so 名称相同但类型不同。

    执行ldconfig命令后报错: 目录 /lib 中的 libpng.so 和 libpng15.so.15.13.0 的 so 名称相同但类型不同. 解决过程: mv /lib/libpng.so ...

  9. https 协议信息查看

    https://www.ssllabs.com/ssltest/」—————————

  10. Docker入门与应用系列(四)网络管理

    一.Docker的五种网络模式 在使用docker run创建docker容器时,可以用--net选项指定容器的网络模式,Docker有以下5种网络模式: 1. bridge模式 使用docker r ...