首页 > 其他分享 >js移除数组,删除数组

js移除数组,删除数组

时间:2022-12-07 10:58:32浏览次数:40  
标签:arr slice console log js length 数组 移除

一、修改arr的length方法

根据修改后的length去除后面的元素。

let arr = [1,2,3,4,5,6,7,8,9];
arr.length = 3;
console.log('length',arr.length); // 3
console.log('arr',arr); // [1, 2, 3]

二、delete方法

修改arr的内容,但是length不变。

let arr = [1,2,3,4,5,6,7,8,9];
delete arr[2];
console.log('length',arr.length); // 9
console.log('arr',arr); // arr [1, 2, empty, 4, 5, 6, 7, 8, 9]

三、pop()方法

栈方法,删除arr的最后一个元素。

let arr = [1,2,3,4,5,6,7,8,9];
arr.pop();
console.log('length',arr.length); // 8
console.log('arr',arr); // [1, 2, 3, 4, 5, 6, 7, 8]

四、shift()方法

删除arr的第一个元素。

let arr = [1,2,3,4,5,6,7,8,9];
arr.shift();
console.log('length',arr.length); // 8
console.log('arr',arr); // [2, 3, 4, 5, 6, 7, 8, 9]

五、splice()方法

可以对arr进行增删改操作。

删除操作:

    第一位参数 0: 代表的是起始下标注。

    第二位参数 2: 代表的是删除的位数。

let arr = [1,2,3,4,5,6,7,8,9];
arr.splice(0,2);
console.log('length',arr.length); // 7
console.log('arr',arr); // [3, 4, 5, 6, 7, 8, 9]

增加操作:

    第1位参数:2代表从何处添加数据,为必需参数。

    第2位参数:0代表要删除的个数,可选。

    第3...位参数:可选,要添加的元素。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi"); // Banana,Orange,Lemon,Kiwi,Apple,Mango

// 移除数组的第三个元素,并在数组第三个位置添加新元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi"); // Banana,Orange,Lemon,Kiwi,Mango

六、slice()方法

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。

原始数组不会被改变。

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

// 第一个参数:可选,begin从该索引处开始提取元素;如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。
// 如果省略 begin,则 slice 从索引 0 开始。
// 如果 begin 超出原数组的索引范围,则会返回空数组。
// 第二个参数:可选,end从该索引处结束提取元素;如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
// 如果 end 被省略,则 slice 会一直提取到原数组末尾。
// 如果 end 大于数组的长度,slice 也会一直提取到原数组末尾。
console.log(animals.slice(2)); // ["camel", "duck", "elephant"]
console.log(animals.slice(2, 4)); // ["camel", "duck"]
console.log(animals.slice(1, 5)); // ["bison", "camel", "duck", "elephant"]
console.log(animals.slice(-2)); // ["duck", "elephant"]
console.log(animals.slice(2, -1)); // ["camel", "duck"]

七、forEach() || filter()方法

通过迭代循环,删除元素。

// forEach()
let arr = [1,2,3,4,5,6,7,8,9];
arr.forEach((item,index,arr) => {
	if(item === 3){
   		arr.splice(index,1);
	}
});
console.log('length',arr.length); // 8
console.log('arr',arr); // [1, 2, 4, 5, 6, 7, 8, 9]

// filter()
let arr1 = [1,2,3,4,5,6,7,8,9];
arr1 = arr1.filter((item)=>{
    return item !== 3;
});
console.log('length',arr1.length); // 8
console.log('arr',arr1); // [1, 2, 4, 5, 6, 7, 8, 9]

八、操作原型

通过在Array原型上添加方法来完成删除。

let arr = [1,2,3,4,5,6,7,8,9];
Array.prototype.remove = function(v) {
	for(let i = 0, j = 0; i < this.length; i++) {
		if(this[i] != v) {
			this[j++] = this[i];
		}
	}
	this.length -= 1;
}
arr.remove(2); //参数为要移除的元素
console.log('length',arr.length); // 8
console.log('arr',arr); // [1, 3, 4, 5, 6, 7, 8, 9]

 

标签:arr,slice,console,log,js,length,数组,移除
From: https://www.cnblogs.com/xiaoliu66007/p/16962428.html

相关文章

  • 解决Webstorm Nodejs console.log("这是中文") 控制台乱码
    设置文件编码自定义vm选项文件添加文件最后一行添加-Dfile.encoding=UTF-83.修改注册表Windows+R-->regedit-->计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsof......
  • Java数组转Set的方法
    转:Java数组转Set的方法        ......
  • 使用sheet.js导出数据
    下面是核心代码letexportColDataletexportColHead//excel工作簿全局变量letworkBook=null;//excelsheet全局......
  • js 语言基础
    基础概念:任何语言的核心最基础层面一定包括:语法、操作符、数据类型、以及内置功能大小写ECMAScript中的一切都是区分大小写的,无论是变量操作符还是函数名标识符......
  • Application entry file "electron\background.js" does not exist
    背景用Vue3+Electron开发了个PDF自由合并客户端。客户端侧代码慢慢膨胀,于是想将默认的路径src/background.js调整到electron/background.js。于是修改了:vue.c......
  • 前端开发JS之BOM、DOM操作、事件、jQuery类库
    BOM操作DOM操作查找标签操作节点class与css操作事件事件实战案例jQuery类库标签对象与jQuery对象BOM操作全称:BrowserObjectModel指浏览......
  • 【requirejs】requirejs使用layui,layui样式无法正常加载
    【requirejs】requirejs使用layui,layui样式无法正常加载 requirejs里使用layui,会有3个css文件无法正常加载错误提示GET http://127.0.0.1:8080/css/modules/lay......
  • 数组2
    数组作为函数参数冒泡排序#include<stdio.h>viodbubble_sort(intarr[]){inti=0;intsz=sizeof(arr)/sizeof(arr[0]);for(i=0;i<sz-1;i++){intj=0;for(......
  • 前端JS
    窗口相关操作//以下代码均为省掉window前缀的尽量写全(见名知意)open()//打开新的空白网页(可跟网址)open('网址','','宽,高')//打开新的子页面......
  • 前端之js之BOM操作-DOM操作-jQuery类库
    目录前端之js之BOM操作-DOM操作-jQuery类库今日内容概要今日内容详细BOM操作DOM操作查找标签操作节点获取值操作class与css操作事件事件实战案例jQuery类库标签对象与jQuer......