-
2018-12-16 23:16:00
假设数组arr有n个元素,现在要删掉下标为index的元素
有两种方法:
1.splice:删除后,后面的元素自动填补到前面
arr.splice(index, 1);
例子://arr=['a','b','c','d']
arr.splice(1, 1);//结果arr=['a','c','d'](下标1开始,删除1个)
补充:
spice增加:arr.splice(1,0,'str'); //结果arr=['a','str','b','c','d']
spice替换:arr.splice(1,1,'str'); //结果arr=['a','str','c','d']
spice替换2:arr.splice(1,2,'str'); //结果arr=['a','str','d'](就是说:下标1开始2个换成1个“str”)
spice删除多个:arr.splice(1,2); //结果arr=['a','d']
2.delete:删除后,该下标位置元素为undefined
delete arr[index];
//结果arr=['a',undefined,'c','d']
更多相关内容 -
删除数组中的指定下标的元素
2020-03-08 19:12:33/* 存在一个数组,数组中的元素为 int[] array = {1, 3, 5, 7, ... 在当前数组中删除指定下标的元素 例如: 指定下标5 结果 {1, 3, 5, 7, 9, 13, 15, 17, 19, 0} 0占位!!! */ 分析: 实现代码 package.../* 存在一个数组,数组中的元素为 int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}; 要求: 1. 0是无效元素,仅占位使用 需求: 在当前数组中删除指定下标的元素 例如: 指定下标5 结果 {1, 3, 5, 7, 9, 13, 15, 17, 19, 0} 0占位!!! */
分析:
实现代码
package com.qfedu.a_array; import java.util.Arrays; public class Demo5 { public static void main(String[] args) { int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}; remove(array, 9); System.out.println(Arrays.toString(array)); } /* 1.5 删除数组中的指定下标的元素【难点】 存在一个数组,数组中的元素为 int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}; 要求: 1. 0是无效元素,仅占位使用 需求: 在当前数组中删除指定下标的元素 例如: 指定下标5 结果 {1, 3, 5, 7, 9, 13, 15, 17, 19, 0} 0占位!!! 推理过程: 从删除位置开始,之后的元素整体向前移动, 并且需要在数组原本最后一个位置上存放元素0,0 是无效元素,占位使用 arr[3] = arr[4]; arr[4] = arr[5]; arr[5] = arr[6]; arr[6] = arr[7]; arr[7] = arr[8]; arr[8] = arr[9]; arr[i] = arr[i + 1]; arr[i - 1] = arr[i]; arr[9] = 0; 方法分析: public static 不要问 返回值类型: boolean 方法名: remove 形式参数列表: 1. 删除数据的数组 2. 指定删除数据的下标位置 方法声明: public static boolean remove(int[] arr, int index) */ /** * 删除数组中指定下标元素的内容 * * @param arr 源数据数组,int类类型 * @param index 指定删除的下标位置 * @return 删除操作成功返回true,失败返回false */ public static boolean remove(int[] arr, int index) { // 参数合法性判断 // index < 0 || index >= arr.length if (index < 0 || index > arr.length - 1) { System.out.println("Input Parameter is Invalid"); return false; } /* arr[3] = arr[4]; arr[4] = arr[5]; arr[5] = arr[6]; arr[6] = arr[7]; arr[7] = arr[8]; arr[8] = arr[9]; arr[i] = arr[i + 1]; 从删除位置开始,到数组的最后一个有效元素位置结束 */ for (int i = index; i < arr.length - 1; i++) { arr[i] = arr[i + 1]; } // 最后一位数据赋值为0,占位,同时告知用户这是一个无效数据 arr[arr.length - 1] = 0; return true; } }
-
js删除数组内多个指定下标的元素
2022-05-11 14:34:23js删除数组内多个指定下标的元素 let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] let deleteIndex = [2, 4, 7] if (deleteIndex.length > 0) { for (let i = deleteIndex.length - 1; i >= 0; i--) { arr....js删除数组内多个指定下标的元素
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] let deleteIndex = [2, 4, 7] if (deleteIndex.length > 0) { for (let i = deleteIndex.length - 1; i >= 0; i--) { arr.splice(deleteIndex[i], 1) } } console.log(arr)
注意不能在循环里对数组进行下标为
i
的删除,因为下次进循环时,数组已经改变了,循环到的下标已经不对了。
以上代码是倒着删除,不会改变下一次删除的下标 -
C语言-w数组中存放n个数据,编写函数删除下标为k的元素中的值。
2020-08-22 21:27:30#define NUM 10//假定数组含有10个元素 int arrdel(int *,int ,int );//函数说明语句 void arrout(int *,int );//函数说明语句 int getindex(int n); main()//用置初值的方法给数组置数 { int n,d,a[NUM]={21,22,23...#include<stdio.h> #define NUM 10//假定数组含有10个元素 int arrdel(int *,int ,int );//函数说明语句 void arrout(int *,int );//函数说明语句 int getindex(int n); main()//用置初值的方法给数组置数 { int n,d,a[NUM]={21,22,23,24,25,26,27,28,29,30}; n=NUM; printf("Output primary data:\n");//输出原始数据 arrout(a,n); d=getindex(n); n=arrdel(a,n,d); printf("Output the data after delete:\n");//输出删除后的数据 arrout(a,n); } void arrout(int w[],int m) { int k; for(k=0;k<m;k++) { printf("%d",w[k]); printf("\n"); } } int arrdel(int *w,int n,int k) { int i; for(i=k;i<n-1;i++) w[i]=w[i+1]; n--;//删除后数据个数减1 return n; } int getindex(int n) { int i; do//当指定的下标值落在数据所在下标范围时,退出循环,返回该下标值 { printf("\nEnter the index[0<=i<%d]:",n);//输入待删元素的下标 scanf("%d",&i); } while(i<0||i>n-1); return i; }
-
删除指定下标的数组元素
2022-03-29 13:19:17void fun(int a[], int k, int *n) { int *p,* q,*r=a; if(k<0||k>=N) { printf("error!\n"); exit(0); } for(p=a,q=a+k;p<a+N;p++) { if(p!=q) { *r++=*p; } else (*n)--; ... -
删除数组中值为k的所有元素
2021-07-28 14:44:13删除数组中值为k的所有元素 算法设计思路: 需要查找数组中所有的元素,所以我们从空间复杂度评价算法的优劣: 设置相同元素的个数计数变量,num即相同元素出现的次数,初始值为0,因为数组是顺序表,每个元素需要... -
3.1.通过下标删除数组的元素
2019-11-12 20:05:05package study; import java.util.Scanner; public class Main { public static int delete(int[] a,int n) { Scanner e = new Scanner... System.out.println("输入你要删除的下标,从0开始"); int m = e.ne... -
数组中的第K个最大元素Python解法(七大排序)
2022-04-13 13:21:04给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 例: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5 解析: 这题主要... -
js删除数组已知下标的元素,去除数组重复的元素
2020-05-21 17:21:17// 去除数组中重复的元素 var spliceIndex = [0, 2, 4, 4, 2] //去重 for (var k = 0; k < spliceIndex.length; k++) { for (var l = k + 1; l < spliceIndex.length; l++) { if (spliceIndex[k] == ... -
详解数组的下标
2020-08-03 10:11:07在大部分编程语言中,数组都是从 0 开始编号的,但你是否下意识地想过,为什么数组要从 0 开始编号,而不是从 1 开始呢? 从 1 开始不是更符合人类的思维习惯吗?你可以带着这个问题来学习接下来的内容。 如何实现... -
js通过数组内容来获取数组下标
2022-07-05 13:55:34js通过数组内容来获取数组下标 需求:通过已知数组里面的某个内容,然后要通过这个内容来删除这个数组,是通过循环来把数组的下标找到,然后再拿去删除。 方法1:js写法 var arr = [1, 1, 2, 12, 3, 23, 5, 6, 45]; ... -
Java 算法 6-9删除数组中的0元素
2022-04-03 09:41:25编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。 输入时首先读入... -
C语言实现删除数组中某个元素
2021-05-19 15:29:50C语言实现删除数组中某个元素大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个元素的两种方法,大家一起看看吧。方法1:/*name: c语言 删除数组的某个元素tip:数组元素的增/删/ ... -
C语言编写一个程序将数组a中第k个元素删除
2021-10-23 00:20:47第一种方法是新定义一个数组为C[(n-1)],用来存储第k个元素删除的数组 //第一种方法 #include<stdio.h> int main() { int n,k,i; scanf("%d %d",&n, &k); int a[n],c[(n-1)]; for(i=0;i<n;i+... -
Java数组删除指定元素的方法(按数组角标删除)
2021-02-28 15:22:41Java最有效的删除数组指定元素的方法,应该属于这一种形式,下面是Java数组按角标删除数据的工具类,代码如下:publicstaticbyte[]removeTheElement(byte[]arr,intindex){if(arr==null||index=arr.length){returnarr... -
C语言中删除数组中某个元素的方法
2021-05-18 12:10:37C语言中删除数组中某个元素的方法发布时间:2020-06-17 14:22:39来源:亿速云阅读:1964作者:鸽子C语言实现删除数组中某个元素大家知道C语言实现删除数组中某个元素方法吗?下面将讲述在C语言中实现删除数组中某个... -
[LeetCode]215. 数组中的第K个最大元素
2020-06-30 01:38:11在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 示例 2: 输入: [3,2,3,1,2,4,5,5,6] 和 k... -
leetcode数组下标大于间距-my-algorithm:我的算法
2021-06-30 17:08:55leetcode数组下标大于间距 my-algorithm 高频题目,必刷 别人写的: 合集 合并排序的数组 找出数组中重复的数字 删除排序数组中的重复项,在原数组上操作 有序数组两数之和 移除数组中所有值为val的元素 调整数组... -
js实现删掉数组中的部分元素
2019-05-14 14:26:52假设现在有两个数组,arr1和arr2,需要删除arr1中和arr2相同的元素,代码如下: function removeFromAaary(arr1, arr2, arr1_length) { function removeNode() { for (var i = 0; i < arr1.length; i++) { for ... -
Leetcode.0215 | 数组中的第K个最大元素
2022-01-06 13:39:01给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 输入: [3,2,1,5,6,4] 和 k = 2输出: 5 输入: [3,2,3,... -
数组删除某个元素
2021-02-07 17:25:48一,清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary);... 其中$.inArray(2, ary)用来查找某元素在数组中的索引位置。 三,js 删除数组几种方法 var arr=['a','b','c'] -
从一个数组中删除另一个数组给出的下标值所对应的值
2021-06-22 21:17:24给定两个数组,第一个数组为数据,第二个数组为排序的下标的集合,删除第一个数组中由第二个数组给出的下标值对应的值,要求时间复杂度为o(n),空间复杂度为o(1)。 对于这种要求,毫不犹豫的就要用覆盖的方式去删除,... -
JS中去除数组中重复元素的方法
2019-08-20 20:52:02JS中去除数组中重复元素...splice():删除元素,并向数组添加新元素,并返回被删除的元素 function f1(){ var _arr=[8,5,0,3,1,8,5,0,3,1,8,8,8,5,2,2,2]; for(n=0;n<_arr.length-1;n++){//循环数组的所有元素 ... -
删除数组(或字符串)中某个元素,保持原序列顺序不变
2022-05-14 15:47:04实现:只需将数组长度减一,系统自动忽略最后一个元素 情况2:删除首元素 思路:所有元素均向前移1位; 实现:用后一个元素的值覆盖前一个元素的值。a[i]=a[i+1] //删除首元素 for(int i=0;i<len-1;i++... -
经典算法题:寻找数组中第k大的元素
2018-06-13 18:54:06本文作这种分类:如果第二大的元素是3,说明在处理第k大的元素时不处理重复的数据,也就是将原数组进行降序排序后,下标为k-1的元素。这种处理方法称之为“不处理重复数据方法”;如果第二大的元素是2,说... -
数组A中删除数组B中的元素(C语言)
2019-09-14 23:53:30编写一个程序从数组A中删除在数组B中存在的元素。 #include<stdio.h> //功能:从数组A中删除在数组B中也存在的数据 //输入:arrA --- 数组A // lenA --- 数组A的长度 // arrB --- 数组B // lenB --- 数组B的... -
从键盘输入6个整数存到数组中 输出其最小值和它所对应的的下标
2021-03-13 18:17:17c语言编程:设有一个数组,从键盘输入10个整数,要求找出最大的数和它的下标,并把它和数组中的第一个交换voidmain(){inta[10];intmax=0;inti;for(i=1;ia[max])max=i;}if(max!=0){i=a[0];a[0]=a[max];a[max]=i;}/*最用... -
LeetCode-算法题系列 (二十三) => 数组中的第K个最大元素
2019-11-05 16:43:17数组中的第K个最大元素 在未排序的数组中找到第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。 输入...