js处理数组的方法总结

本文总结了JavaScript操作数组的所有方法方式。包含了ES6+新增的方法。会在操作方法上解释出现的版本。 内容较多,建议收藏查看。

  1. push(): 在数组末尾添加一个或多个元素,并返回新的长度。
let arr = [1, 2, 3];
let newLength = arr.push(4, 5);
console.log(arr);  // 输出[1, 2, 3, 4, 5]
console.log(newLength); // 输出:5
  1. pop(); 删除数组的最后一个元素,并返回被删除的元素。
let arr = [1, 2, 3];
let ele = arr.pop();
console.log(arr);  // 输出[1, 2]
console.log(ele); // 输出:3
  1. shift(): 删除数组的第一个元素,并返回被删除的元素。
let arr = [1, 2, 3];
let ele = arr.shift();
console.log(arr);  // 输出[2, 3]
console.log(ele); // 输出:1
  1. unshift(): 在数组的开头添加一个或多个元素,并返回新的长度
let arr = [1, 2, 3];
let newLength = arr.unshift(-2, -1);
console.log(arr); // 输出[-2, -1, 1, 2, 3];
console.log(newLength); // 输出5
  1. splice(): 通过删除现有元素和添加新元素来更改一个数组的内容,返回被输出的元素数组
let arr = [1, 2, 3, 4, 5];
// 从索引2开始删除3个元素
let removed = arr.splice(2, 3);
console.log(arr); // 输出: [1, 2]
console.log(removed); // 输出:[3, 4, 5]// 在索引2出新增两个元素
let removed2 = arr.splice(2, 0, "a", "b")
console.log(arr); // 输出: [1, 2, "a", "b"]
console.log(removed2 ); // 输出:[]
  1. slice(): 返回数组的一个浅拷贝,从开始到结束(左闭右开,不包括结束)的元素
let arr = [1, 2, 3, 4, 5];
let sliced = arr.slice(2, 4);
console.log(sliced);  // 输出:[3, 4]

es5新增的方法

  1. isArray(): ES5检查对象是否为数组
function myFunction() {var fruits = ["Banana", "Orange", "Apple", "Mango"];var x = document.getElementById("demo");x.innerHTML = Array.isArray(fruits);
}
  1. forEach(): ES5为每个元素调用一次函数
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);function myFunction(value) {txt = txt + value + "<br>"; 
}
  1. map(): (ES5)创建一个新数组。其结果是该数组中的每个元素作为参数执行函数的返回值。
let arr = [1, 2, 3]
let mapped = arr.map(x=> x*2);
console.log(mapped); // 输出:[2, 4, 6];
  1. filter(): (ES5)创建一个新数组,其结果是符合参数函数条件的数组元素
let arr = [1, 2, 3, 4, 5]
let filterd = arr.filter(x=> x > 3);
console.log(filterd); // 输出[4, 5]
  1. reduce(): (ES5)对数组中每个元素(从左到右)执行一个由提供reducer函数,将其结果汇总为单个返回值。
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((accumulator, currentValue)=> accumulator + currentValue);
console.log(sum); // 15;
  1. reduceRight(): (ES5)与reduce()是相同的,只是遍历顺序相反(从右到左)
  2. forEach(): (ES5)为数组每个元素调用一次函数
var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);function myFunction(value) {txt = txt + value + "<br>"; 
}
  1. every(): (ES5)检查数组里的所有元素是否都符合条件,符合则为true。
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);console.log(allOver18); // falsefunction myFunction(value) {return value > 18;
}
  1. some(): (ES5)检查某些元素是否符合条件,有一个符合则为true
var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.some(myFunction);function myFunction(value) {return value > 18;
}
  1. indexOf(): (ES5)检查数组中的某个元素值并返回其下表(从左到右寻找)
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple") // 2
  1. lastIndexOf(): ES5与indexOf()类似,只是检索是从右向左。
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

es6新增的方法

  1. find(): ES6 返回通过测试函数的第一个数组元素的值。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);/*** params1:元素值* parmas2:元素下标* parmas3: 数组本身  
**/
function myFunction(value, index, array) {return value > 18;
}
  1. findIndex():ES6返回通过测试函数的第一个数组元素的索引。
var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);/*** params1:元素值* parmas2:元素下标* parmas3: 数组本身  
**/
function myFunction(value, index, array) {return value > 18;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/30497.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【JS重点18】原型链(面试重点)

一&#xff1a;原型链底层原理 以下面一段代码为例&#xff0c;基于原型对象&#xff08;Star构造函数的原型对象&#xff09;的继承使得不同构造函数的原型对象关联在一起&#xff08;此处是最大的构造函数Object原型对象&#xff09;&#xff0c;并且这种关联的关系是一种链…

CleanShot X for Mac v4.7 屏幕滚动长截图录像工具(保姆级教程,小白轻松上手,简单易学)

Mac分享吧 文章目录 一、下载软件二、部分特有功能效果1、截图软件的普遍常用功能&#xff08;画框、箭头、加文字等&#xff09;都具备&#xff0c;不再详细介绍2、ABCD、1234等信息标注&#xff08;每按一下鼠标&#xff0c;即各是A、B、C、D...等&#xff09;3、截图更换背…

SQL注入-下篇

HTTP注入 一、Referer注入 概述 当你访问一个网站的时候&#xff0c;你的浏览器需要告诉服务器你是从哪个地方访问服务器的。如直接在浏览器器的URL栏输入网址访问网站是没有referer的&#xff0c;需要在一个打开的网站中&#xff0c;点击链接跳转到另一个页面。 Less-19 判…

Oracle中先进先出数据结构的例子

在Oracle中&#xff0c;实现先进先出&#xff08;FIFO&#xff09;数据结构的一个典型例子可以通过设计和查询特定的表来完成。以下是一个简化的例子来说明这个概念&#xff1a; 1. 设计表结构 首先&#xff0c;我们需要一个包含“入队”时间戳的表来模拟队列的行为。以下是一…

Python部分库函数

目录 一、常规函数 元组相关函数 1.元组的创建 2.元组多变量赋值 列表相关函数 1.列表的创建 &#xff08;1&#xff09;将至于中括号中的、用逗号分隔开的一组数据赋值给一个变量&#xff0c;数据可以是多个也可以是一个 &#xff08;2&#xff09;使用list函数 &…

第29讲:Ceph集群使用RBD块存储设备与K8S的PV集成

文章目录 1.Ceph集群使用RBD块存储与K8S集成简介2.Ceph集群RBD块存储与K8S PV存储卷集成2.1.创建K8S集群PV使用的块存储2.2.创建K8S集群访问RBD块存储设备的认证用户2.3.将认证用户的Key存储在K8S Secret资源中2.4.在K8S集群的所有节点中安装Ceph命令2.5.创建PV及PVC资源使用RB…

C#开发-集合使用和技巧(八)集合中的排序Sort、OrderBy、OrderByDescending

C#开发-集合使用和技巧&#xff08;八&#xff09;集合中的排序Sort、OrderBy、OrderByDescending List<T>.Sort()IEnumerable<T>.OrderBy()Enumerable<T>.OrderByDescending() 在C#中&#xff0c;List<T> 类提供了多种方法来进行排序&#xff0c;最常…

浔川法务部通知——浔川法务部

原文链接&#xff1a;如何用python做一个用户登录界面——浔川python社-CSDN博客 抄袭链接&#xff1a;用python做的一个登录界面——浔川python社-易微帮 浔川python社原创文章被抄袭&#xff0c;请抄袭网站删除文章。 我方于昨夜联系了CSDN举报中心。如不删除&#xff0c;我…

jax.nn.initializers.glorot_normal()

import jax import jax.numpy as jnp from jax import random import jax.nn.initializers as init# 设置随机数种子 key random.PRNGKey(42)# 定义权重的形状 shape (in_dim, out_dim)# 获取 Glorot 正态初始化函数 glorot_normal_init init.glorot_normal()# 初始化权重 w…

QT基础 - QMainWindow主窗口

目录 零. 简介 一. 菜单栏 二. 工具栏 三. 状态栏 四. 可停靠区域 五. 总结 零. 简介 QMainWindow 是 Qt 中用于构建主窗口的类。 它通常包含以下几个主要部分&#xff1a; 菜单栏&#xff1a;用于提供各种操作选项。工具栏&#xff1a;放置常用的操作按钮。中心区域&…

搭建Vue的环境

目录 # 开篇 步骤一&#xff0c;准备Vue 的环境 步骤二&#xff0c;下载Vue.js的包 步骤三&#xff0c;创建并打开写前端代码的文件夹 步骤四&#xff0c;在VSCode中引入Vue.js的包 步骤五&#xff0c;创建第一个vue.html Vue其他知识 Vue.config命令 # 开篇 介绍&…

详细分析Element Plus的el-pagination基本知识(附Demo)

目录 前言1. 基本知识2. Demo3. 实战 前言 需求&#xff1a;从无到有做一个分页并且附带分页的导入导出增删改查等功能 前提一定是要先有分页&#xff0c;作为全栈玩家&#xff0c;先在前端部署一个分页的列表 相关后续的功能&#xff0c;是Java&#xff0c;推荐阅读&#x…

C/C++ 提取DNS请求/响应数据包之中的 Quesion 内容

它主要是提取DNS数据包之中查询问题的信息&#xff0c;如&#xff1a;问题类型、问题类别、问题内容&#xff08;域/IP&#xff09;&#xff0c;我们如果想要对于某个DNS数据包需要进行遥测的时&#xff0c;或者进行NS缓存生命周期管理&#xff0c;那么就需要类似这样的函数实现…

Java中System.setProperty()用法总结

Java中System.setProperty()用法总结 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在Java编程中&#xff0c;System.setProperty()方法用于设置系统属性。系统…

数据结构:4.1.2二叉搜索树的插入

整个框架和FInd函数的实现是一样的&#xff0c;但是也有不同&#xff08;注意&#xff09; 35>30 向30的右子树 35<41 向41的左子树 35>33 向33的右子树&#xff0c;但33右边为空&#xff0c;所以35就挂在33的右边 因为要把35挂在33的右边&#xff0c;所以要把33的…

绘制eps格式的实验结果图

1. python 画图保存为eps python画出实验结果图之后有时想进行标记从而让读者通过看图就能明白做了什么。IEEE 一般要求实验结果是eps格式&#xff08;矢量图&#xff09;&#xff0c;如果在python画图之后不需要进行进一步的编辑&#xff0c;可以直接使用Tkagg画布在小窗口画…

Solkane 冷媒性能计算软件-管路计算

下载 制冷管道设计 制冷管路的压降会降低制冷量&#xff0c;增大功耗。但不同部分的管路允许的压降的数量级是不同的。 制冷管路的压降不是唯一的考虑因素&#xff0c;制冷剂的流速往往比压降更重要。 制冷系统中&#xff0c;压缩机、阀、汽液分离器或其他附件上的连接件的尺…

VSCode 安装NeoVim扩展(详细)

目录 1、安装NeoVim扩展 2、windows安装Neovim软件 3、优化操作相关的配置&#xff1a; 5、Neovim最好的兼容性配置 6、技巧和特点 6.1 故障排除 6.2、Neovim 插件组合键设置 6.3、跳转列表 1、安装NeoVim扩展 在扩展商店搜索NeoVim&#xff0c;安装扩展 2、windows安装…

重学java 77.JDK新特性 ③ Stream流

The road is long,it can be really hard.Whatever you do,you hold on to that foolishly hopeful smile —— 24.6.19 Stream流 stream流中的"流"不是特指"IO流",它是一种"流式编程"(编程方式),可以看做是"流水线 package S109Stream;im…

JavaScript——JavaScript对象:对象的创建方式、in关键字、遍历对象的属性和方法、内置对象

目录 JavaScript对象 对象的创建方式 利用字面量创建对象 利用new Object创建对象 利用构造函数创建对象 类 in关键字 遍历对象的属性和方法 内置对象 JavaScript对象 对象的创建方式 利用字面量创建对象 /* 面向对象的编程思想&#xff1a;写类创建对象并调用对象…