javascript中数组元素删除方法splice,用在for循环中巨坑

一、demo

splice: 该方法会改变自动原始数组长度

实例:

 var array = ["aa","dd","cc","aa"];
   //方法2:删除数组元素
    array.splice(1,1);
   //输出结果:["aa","cc","aa"]
   getArray(array);

输出:aa

   cc

   aa

数组长度自动减一

二、实际业务场景中

在for循环中使y用 temp.splice(i, 1);

一定要记得跟着写i--

detect() {

let temp = [];

temp = this.tableBase;

let userName = this.search;

let count = 0;

for (let i = 0; i < temp.length; i++) {

if (!(temp[i].userName === userName)) {

console.log(temp[i].userName);

temp.splice(i, 1); //这种删除方式会自动更新长度,慎用

i--;

//delete temp[i];

count++;

console.log("删除");

}

}

console.log(count);

this.tableBase = temp;

console.log(this.tableBase);

},

原文地址:https://www.cnblogs.com/yanl55555/p/11997617.html

时间: 2024-10-26 00:46:08

javascript中数组元素删除方法splice,用在for循环中巨坑的相关文章

javascaipt中数组元素删除方法delete和splice

一.用delete 删除数组中元素(少用) 说明:delete: 只是被删除的元素变成了 undefined ,即数组长度不变 //定义数组 var array=["aa","dd","cc","aa"]; //方法1:delete删除数组元素 delete array[1]; //输出结果 : ["aa",undefined,"cc","aa"] getArray(

javascript中数组比较大小方法

javascript中数组取最大值和最小值 1.排序法 我们给数组进行排序,可以按照从小到大的顺序来排,排序之后的数组中第一个和最后一个就是我们想要获取的最小值和最大值.排序我们会用到数组的 sort 方法. var arr = [12,56,25,5,82,51,22]; arr.sort(function (a, b) { return a-b; }); // [5,12,22,25,51,56] var min = arr[0]; // 5 var max = arr[arr.length

javascript中数组常用的方法

在JavaScript中,数组可以使用Array构造函数来创建,或使用[]快速创建,这也是首选的方法.数组是继承自Object的原型,并且他对typeof没有特殊的返回值,他只返回'object'. 运行[] instanceof Array他会返回ture.虽然结果是这样,但也有复杂的类数组对象,如字符串或arguments对象,但arguments对象并非是Array的实例,但他却拥有length属性,而且他的值是可以被索引的,因此他可以像一个数组那样被遍历. 这本文中,我将介绍数组原型的一

javascript中数组常用的方法和属性

前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属性和方法,在此记录一下. 数组常用的属性和方法 常用属性 Array.length:返回数组的大小 常用方法 Array.pop():删除并返回数组的最后一个元素 Array.push():向数组的结尾添加元素 Array.shift():将元素移除数组 Array.unshift():向数组头部添

Javascript中数组的判断方法

摘要: 1.数组检测的方法: 1) typeof . 2) instanceof . 3) constructor . 4) Object.prototype.toString. 5) Array.isArray(). 以上为数组检测的方法,但是这些方法中: Array.isArray()方法是最为简单方便的方法,但是存在版本支持性问题,没有版本支持性问题且较好的检测方法是使用Object.prototype.toString结合call()方法来检查,通常数组检测中我们常用的做法是两种方法结合

JavaScript中数组元素的线性搜索

线性搜索:将给定的数组元素一个接一个的与我们需要查找的元素进行比较. 示例:1.该示例通过prompt()函数实现用于输入需要查找的元素. 2.给定一组数组元素 3.将查询结果通过set_innerHTML()函数输出到指定页面标签内. (注:set_innerHTML()函数弥补JavaScript的innerHTML属性,JavaScript的innerHTML属性不能进行网页交互时输出.即网页交互时使用innerHTML属性JavaScript程序无响应.) <!doctype html>

javascript中数组的concat()方法 - 数组连接

1 <html> 2 <head> 3 <title>数组的concat()方法</title> 4 5 <script> 6 /* 7 数组的concat()方法: 8 1.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. 9 2.返回一个新的数组.该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的. 10 如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组. 11 */

javascript中数组的map方法

map方法原型:array1.map(callbackfn[, thisArg]) 参数: array1,必选. 一个数组对象.该函数一般用于数组对象 callbackfn,必选. 最多可以接受三个参数的函数. 对于数组中的每个元素,map 方法都会调用 callbackfn 函数一次. thisArg,可选. callbackfn 函数中的 this 关键字可引用的对象. 如果省略 thisArg,则 undefined 将用作 this 值. 返回值: 一个新数组,其中的每个元素均为关联的原

【前端_js】javascript中数组的map()方法

数组的map()方法用于遍历数组,每遍历一个元素就调用回调方法一次,并将回调函数的返回结果作为新数组的元素,被遍历的数组不会被改变. 语法:let newAarray = arr.map(function callback(currentValue, index, array) { // Return element for newArray } 示例: let numbers = [1, 5, 10, 15]; let doubles = numbers.map((x) => { return