【JavaScript】数组常用方法

news2024/11/19 15:32:47

冲突数组常用方法:

注:

以下方法都会对原数组进行改变:

push:向数组后面追加元素,返回值是追加后的数组长度
pop:从数组后面删除元素,返回值是删除的元素内容
unshift:在数组前面添加元素,返回值是增加后的数组长度
shift:在数组前面删除元素,返回值是删除的元素内容


splice:从数组某个位置删除

 var arr=["1","2","3"];
    var del_splice=arr.splice(1,1);
    console.log("返回值",del_splice)
    var res_splice=arr.splice(1,0,"4","5");
    console.log(arr);
    console.log("返回值",res_splice)

splice(1,1):从数组下标为1的位置删除1个元素返回值是删除的元素
还可以使用splice在指定位置增加元素:arr.splice(1,0,“4”,“5”)
在数组下标为1的位置删除0个元素,并追加“4”和·“5”
返回值是删除的元素组成的数组

前面和后面增加使用unshift和push,前面和后面删除使用shift和pop
在中间位置删除和增加使用splice


reverse:倒序排列。这个会改变原数组


排序:sort
注意:这种写法是错误的:

var arr_new=["11","44","2","55","100"]
    console.log(arr_new.sort())

在这里插入图片描述
只是按照个位数的大小给你排序
正确写法:使用回调函数 函数传参:

var arr_new=["11","44","2","55","100"]
    arr_new.sort(function (a,b){
        return a-b;//顺序
    })
    console.log(arr_new);

    new_arr=['1',"70","54","61","78"]
    new_arr.sort(function (a,b){
        return b-a;//逆序
    })
    console.log(new_arr);

在这里插入图片描述

不会对原数组进行改变的数组方法:

concat:两个数组进行拼接

var arr1=["2","7","8"]
    var arr2=["21","72","84"]
    var arr3=arr1.concat(arr2)
    console.log(arr1);
    console.log(arr2);
    console.log(arr3)

在这里插入图片描述
也可以拿来复制数组,在新数组里进行操作,不影响原数组
**join方法:**把数组转化成字符串,自定义分隔符

var li_arr=[]
    for (var i = 0; i <5;i++){
        li_arr.push("<li>"+i+"</li>")
    }
    document.write(li_arr.join(" "))

在这里插入图片描述
slice:截取

// slice:截取
arr=["主页","游戏","电影","主播","退出"]
// 从下标为0的位置截取两个
var arr_slice=arr.slice(0,2)
console.log(arr_slice)
console.log(arr)

在这里插入图片描述
如果括号里面只有一个数字,则代表从那个下标开始截取到末尾;如果括号内为空,则表示复制,并且进行操作也不影响原数组。
如果是slice(2,-2)就代表从下标为2开始向后截取,但是去掉最后两个。
查找元素Indexof
返回值是查找到的元素下标,没有查找到返回-1
如果有重复的,那只返回查找到的第一个元素的下标
在这里插入图片描述
以下三种方法,都不会影响原数组
在这里插入图片描述
使用对象方法去重,重复的key值会被覆盖,然后使用for in语句把key值赋给新数组

// var arr=["1","2","1","3","4","2","4"]
// var obj = {}
// for(var i = 0; i < arr.length; i++){
//     obj[arr[i]]="去重"
// }
// console.log(obj)
// var arr2=[]
// for (var i in obj){
//     //直接push出来key值是字符串,想要转化成数字可以-0或者Number(i)
//     // arr2.push(i)
//     arr2.push(i-0)
// }
// //
// console.log(arr2)

Set方法:自动去重

var arr=[1,2,3,2,1,3,4]
var arr2=new Set(arr)
console.log(arr2)
// 把set结构转化为数组
var arr3=Array.from(arr2)
console.log(arr3)

重点方法:

大多使用回调函数去实现:

// // foreach遍历,两个形参:(值,下标)
     var arr=[11,22,33,44,55,66]
     arr.forEach(function(a,b){
        console.log(a,b)
     })

在这里插入图片描述
map:映射

var arr=[11,22,33,44,55,66]
var arr2=arr.map(function(a) {
    return a
})
console.log(arr2)


在这里插入图片描述

var arr_1= ["你好","世界"]
var arr3=arr_1.map(function(a) {
    return "<li>"+a+"</li>"
})
document.write(arr3.join())

在这里插入图片描述
filter 过滤,默认返回为true,设置为false,就返回一个空数组

var arr=[1,2,3,4,54]
//全部为true输出
var arr1=arr.filter(function(){
    return true
})
console.log(arr1)
//过滤大于3的对象属性:
var arr_1=[{
    name:"商品1",
    price:"2"},
    {
        name:"商品2",
    price:"4"
    },

   {name:"商品3",
    price:"5"}

]
var arr2=arr_1.filter(function(a){
    return a.price>3
})
console.log(arr2)

在这里插入图片描述
every:每一个满足条件,显示为true,否则为false
在这里插入图片描述
some:只要一个满足条件,就为true
在这里插入图片描述
find 寻找符合条件的值

var arr = [{
    name: "数学",
    score:80
},
{
    name: "英语",
    score:100
},
{
    name: "语文",
    score:90
}];
var arr2=arr.find(function(a){
    return a.score===100
})
console.log(arr2)

这个方法和过滤不同,返回值只有一个,就是符合条件的第一个值
在这里插入图片描述

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

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

相关文章

CMMI之系统设计

系统设计&#xff08;System Design, SD&#xff09;是指设计软件系统的体系结构、用户界面、数据库、模块等&#xff0c;从而在需求与代码之间建立桥梁&#xff0c;指导开发人员去实现能满足用户需求的软件产品。系统设计过程域是SPP模型的重要组成部分。本规范阐述了系统设计…

第一章 Flink简介

Flink 系列教程传送门 第一章 Flink 简介 第二章 Flink 环境部署 第三章 Flink DataStream API 第四章 Flink 窗口和水位线 第五章 Flink Table API&SQL 第六章 新闻热搜实时分析系统 前言 流计算产品实时性有两个非常重要的实时性设计因素&#xff0c;一个是待计算…

文档智能(一):基于OpenCV的文档图像校正

文档智能(一)&#xff1a;基于OpenCV的文档图像校正 发表时间&#xff1a; 2023年1月7日创作地点&#xff1a;湖北省武汉市作者&#xff1a;ixy_com&[Aneerban Chakraborty]封面图片来源&#xff1a;DocTr 本文关键词&#xff1a;文档智能、文档图像校正、OpenCV、形态…

从零实现Dooring低代码印章组件

上一篇文章和大家分享了低代码平台组件间通信方案的几种实现:低代码平台组件间通信方案复盘今天继续和大家分享一下比较有意思的可视化印章组件的实现.你将收获低代码组件的基本设计模式印章组件的设计原理(canvas相关)如何快速将任意组件集成到低代码平台正文低代码组件的基本…

雷鸟X2:开启可量产全彩MicroLED光波导AR眼镜新起点

从最近的AR眼镜新品来看&#xff0c;采用MicroLED光波导方案已经成为了明显的趋势&#xff0c;可见业内对于光学的大方向还是非常统一的。不仅如此&#xff0c;各个厂商都拿出自己最优的方案来进行探索和验证&#xff0c;比如有的看重“极轻”、有的看重“视觉”、有的看重“价…

使用Jenkins一键打包部署 SpringBoot应用

一般而言&#xff0c;一个项目部署的由&#xff1a;拉取代码->构建->测试->打包->部署等过程组成&#xff0c;如果我们经常需要部署项目&#xff0c;特别是在微服务时代&#xff0c;服务特别多的情况下&#xff0c;不停的测试打包部署&#xff0c;那估计得有个人一…

数学:一夜读罢头飞雪

文章目录引子代数&#xff0c;几何与分析数学之美微积分形式的统一之美伽罗华群论的深刻之美几何的形体之美公理与定理集合论的公理欧几里得几何公理算术公理实数系的公理系统数学攀登的路径数学的符号系统希腊字母表物理与数学推荐的数学读物参考链接引子 贺新郎读史 人猿相揖…

【阶段二】Python数据分析数据可视化工具使用05篇:统计直方图、面积图与箱型图

本篇的思维导图: 统计直方图 统计直方图(histogram)形状类似柱形图,却有着与柱形图完全不同的含义。统计直方图涉及统计学的概念,首先要从数据中找出它的最大值和最小值,然后确定一个区间,使其包含全部测量数据,将区间分成若干个小区间,统计测量结果出现在各…

详细讲解Linux PCI驱动框架分析

说明&#xff1a; Kernel版本&#xff1a;4.14 ARM64处理器 使用工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 从本文开始&#xff0c;将会针对PCIe专题来展开&#xff0c;涉及的内容包括&#xff1a; PCI/PCIe总线硬件&#xff1b; Linux PCI驱动核心框…

通俗理解Platt scaling/Platt缩放/普拉特缩放

一、引言 最近在读论文的时候接触到Platt scaling&#xff0c;有点不理解这个概念。然后好奇心比较重&#xff0c;就看了一些科普&#xff0c;并追根溯源调查了一下Platt scaling。最终搞懂了这个概念&#xff0c;写个博客记录一下。中文翻译有看到&#xff1a;普拉特缩放&…

通信原理与MATLAB(十一):QAM的调制解调

目录1.QAM的调制原理2.QAM的解调原理3.QAM代码4.结果图5.特点1.QAM的调制原理 QAM调制原理如下图所示&#xff0c;基带码元波形经过串并转换分成I、Q两路&#xff0c;然后再经过电平转换(00转换成-1,01转换成-3,10转换成1,11转换成3)&#xff0c;再与对应的载波相乘&#xff0…

scMDC:针对单细胞多模态数据进行聚类

目录摘要引言背景介绍单细胞数据聚类方法回顾ZINBscMDC摘要 单细胞多模态测序技术的发展是为了在同一细胞中同时分析不同模态的数据&#xff0c;它为在单细胞水平上联合分析多模态数据从而识别不同细胞类型提供了一个独特的机会。正确的聚类结果对于下游复杂生物功能研究至关重…

JavaEE多线程-认识多线程

目录一、认识操作系统二、认识进程三、内存管理四、什么是线程(Thread)&#xff1f;五、为什么要有线程&#xff1f;六、进程和线程的关系一、认识操作系统 我们需要简单了解一下操作系统。 操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织…

【Python】sklearn机器学习之DBSCAN聚类

文章目录基本原理测试构造函数基本原理 DBSCAN算法是比较经典的聚类算法了&#xff0c;除了sklearn之外&#xff0c;open3d这种常用的点云模块也提供了DBSCAN算法的实现&#xff0c;例如Open3d数据滤波和点云分割。 和其他聚类算法相比&#xff0c;DBSCAN存在一种去中心化的特…

六、Gtk4-Widgets (3)

1 Open 信号 1.1 G_APPLICATION_HANDLES_OPEN flag 在上一节中&#xff0c;我们使用GtkTextView、GtkTextBuffer和GtkScrolledWindow创建了一个非常简单的编辑器。我们将为程序添加文件读取功能&#xff0c;并将其改进为文件查看器。 要给出文件名&#xff0c;最简单的方法是…

(软考)系统架构师大纲

考试要求&#xff1a; 掌握计算机硬软件与网络的基础知识;熟悉信息系统开发过程;理解信息系统开发标准、常用信息技术标准;熟悉主流的中间件和应用服务器平台;掌握软件系统建模、系统架构设计基本技术;熟练掌握信息安全技术、安全策略、安全管理知识;了解信息化、信息技术有关…

使用Vite搭建vue3+TS项目

vite简介 vite 是一个基于 Vue3 单文件组件的非打包开发服务器&#xff0c;它具有快速的冷启动&#xff0c;不需要等待打包操作&#xff1b;并且官网说是下一代的前端构建工具。 初始化项目 npm init vitelatest1.输入项目名称 2.选择Vue 3.选择TS 4.启动项目 5.项目启…

【阶段三】Python机器学习07篇:模型评估函数介绍(回归模型)

本篇的思维导图: 模型评估函数介绍(回归模型) 绝对误差与相对误差: 设Y表示实际值, 表示预测值,则称E为绝对误差(Absolute Error),计算公式如式所示: e为相对误差(Relative Error),计算公式如式所示:

Maven怎么写本地仓库没有的架包坐标

什么是jar包的坐标&#xff1f; 当我们使用Maven开发一个项目时&#xff0c;需要向项目中导入很多个jar包&#xff0c;这些jar包不需要我们自己一个个的导入&#xff0c;只需要在创建的项目中的pom.xml文件中写上需要的jar包的坐标&#xff0c;Maven就会去本地仓库找有没有这个…

黑马学ElasticSearch(一)

目录&#xff1a; &#xff08;1&#xff09;初识ES-什么是elasticsearch &#xff08;2&#xff09;初识ES-倒排索引 &#xff08;3&#xff09;ES与MySQL的概念对比 &#xff08;4&#xff09;安装ES &#xff08;1&#xff09;初识ES-什么是elasticseach 随着业务的发…