1. 首页 > 笙耀百科 >

js数组remove_Js数组转字符串

如果你没有使用第三方框架,有类似的扩展功能可以根据指定值,返回元素的下标的话,只能自己先查找,然后再删除。

js数组remove_Js数组转字符串js数组remove_Js数组转字符串


js中要删除数组中的某个元素,可直接使用splice方法。

splice方法第一个参数是要删除的数组的索引值,第二个参数是要删除的数量。

也可以使用for循环遍历删除指定元素。

1、splice

splice(index,len,[item]) 注释:该方法会改变原始数组。

splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空

如:arr = ['a','b','c','d']

删除 ---- item不设置

arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变

arr.splice(1,2) //['a','d'] 删除起始下标为1,长度为2的一个值,len设置的2

替换 ---- item为替换的值

arr.splice(1,1,'ttt') //['a','ttt','c','d'] 替换起始下标为1,长度为1的一个值为‘ttt',len设置的1

arr.splice(1,2,'ttt') //['a','ttt','d'] 替换起始下标为1,长度为2的两个值为‘ttt',len设置的1

添加 ---- len设置为0,item为添加的值

arr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项‘ttt'

看来还是splice最方便啦

2、delete

delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变

如:delete arr[1] //['a', ,'c','d'] 中间出现两个逗号,数组长度不变,有一项为undefined

可以使用双重循环,逐一对比元素,如有重复,则删除的方法去重。

其思路为

1、依来次遍历循环中的每一个元素。

2、对于任意一个元素,依次与之前的元素进行对比,如果有自重复则删除。

3、删除操作可以采用将后续元素逐个前移,达到覆盖当前元素的效果。

在此基础上可以进行一点优化,即,2113不需要每次删除元素均前移所有元素,而是把需要保留的元素放到"应该"放的位置即可,这样可以提高效率。5261

以整型数组4102为例,参考代码如下:

int remove_repeat(int *a, int l)//对起始地址为a,长度为l的数组进行去重,新的长度以返回值形式返回。

{int i,j, r=0; //i,j为循环下标,r为去重后1653元素总数,初始值为0

for(i = 0; i < l; i ++)

{for(j = 0; j < r; j ++)//检查是否重复

if(a[j] == a[i]) break;

if(j == r) //没有重复元素

a[r++] = a[i]; //将当前元素放置与去重后数组的尾部,并增加去重后的总数。

}return r; //返回新的长度。

}

清空数组并塞入新数据的方法:

注意:splice 返回的是含有被删除的元素的数组,没有删除的话返回空数组:

参考:

js清空数组的三种方法

下面三种都会影响原数组,最后一项不影响原数组:

opop()

oshift()

osplice()

oslice()

1、pop()

pop() 方法用于删除数组的最后一项,同时减少数组的length 值,返回被删除的项

let colors = ["red", "green"]

let item = colors.pop(); // 取得最后一项

console.log(item) // green

console.log(colors.length) // 1

2、shift()

shift()方法用于删除数组的第一项,同时减少数组的length 值,返回被删除的项

let colors = ["red", "green"]

let item = colors.shift(); // 取得第一项

console.log(item) // red

console.log(colors.length) // 1

3、splice()

传入两个参数,分别是开始位置,删除元素的数量,返回包含删除元素的数组

let colors = ["red", "green", "blue"];

let removed = colors.splice(0,1); // 删除第一项

console.log(colors); // green,blue

console.log(removed); // red,只有一个元素的数组

4、slice()

slice() 用于创建一个包含原有数组中一个或多个元素的新数组,不会影响原始数组

let colors = ["red", "green", "blue", "yellow", "purple"];

let colors2 = colors.slice(1);

let colors3 = colors.slice(1, 4);

console.log(colors) // red,green,blue,yellow,purple

concole.log(colors2); // green,blue,yellow,purple

concole.log(colors3); // green,blue,yellow

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息