15.数组的方法(改变原数组和不改变原数组)

改变原数组

(1)pop

        语法:数组名.pop()

        作用:删除数组最后一项

        返回值:返回被删除的那一项

var arr=["zhangsna","lisi","wanger","mazi"]
var res=arr.pop()
console.log(arr) //['zhangsna', 'lisi', 'wanger']
console.log(res) //"mazi"
(2)push

        语法:数组名.push(数据)

        作用:在数组末尾添加数据

        返回值:返回数组的长度

var arr=["zhangsna","lisi","wanger","mazi"]
var res=arr.push("我是push")
console.log(arr)  //['zhangsna', 'lisi', 'wanger', 'mazi', '我是push']
console.log(res)  //5
(3)shift

        语法:数组名.shift()

        作用:删除数组第一项

        返回值:返回被删除的数据

var arr=["zhangsna","lisi","wanger","mazi"]
var res=arr.shift()
console.log(arr) //['lisi', 'wanger', 'mazi']
console.log(res) //"zhangsna"
(4)unshift

        语法:数组名.unshift(数据)

        作用:子啊数组最前面插入数据

        返回值:返会数组长度

var arr=["zhangsna","lisi","wanger","mazi"]var res=arr.unshift("我是unshift",'1111')
console.log(arr) //['我是unshift', '1111', 'zhangsna', 'lisi', 'wanger', 'mazi']
console.log(res) //6
(5)splice

        语法:

        作用:截取字符串

        返回值:返回被截取的字符串

        语法:

                ①数组名.splice(开始索引)

var arr=["zhangsna","lisi","wanger","mazi"]
var res=arr.splice(1) //开始索引
console.log(arr) //['zhangsna']
console.log(res) //['lisi', 'wanger', 'mazi']

                ②数组名.splice(开始索引,截取的个数)

var arr=["zhangsna","lisi","wanger","mazi"]
var res=arr.splice(2,4) 
console.log(arr) //['zhangsna', 'lisi']
console.log(res) //['wanger', 'mazi']

                ③数组名.splice(开始索引,截取的个数,插入的数据1,插入的数据2...)

var arr=["zhangsna","lisi","wanger","mazi"]
var res=arr.splice(1,1,'插入数1','插入数2') 
console.log(arr) //['zhangsna', '插入数1', '插入数2', 'wanger', 'mazi']
console.log(res) //['lisi']
(6)reverse

        语法:数组名.reverse()

        作用:翻转数组

        返回值:返回翻转的数组

var arr = ["zhangsan", "lisi", "wanger", "mazi"];
var res = arr.reverse();
console.log(res);//['mazi', 'wanger', 'lisi', 'zhangsan']
console.log(arr);//['mazi', 'wanger', 'lisi', 'zhangsan']
(7)sort

        语法:数组名.sort()

        作用:对数组排序(字符串-对字符一位一位的比较),默认从小到大排

        返回值:返回排序完的数组

var arr = [1, 88, 44, 12, "A", "a"];
var res = arr.sort();
console.log(res); //[1, 12, 44, 88, 'A', 'a']
console.log(arr); //[1, 12, 44, 88, 'A', 'a']/*
相当于
var res = arr.sort(function (a, b) {return a - b;
});
*/

        从小到大排

var arr = [1, 88, 44, 12, "A", "a"];
var res = arr.sort(function (a, b) {return b - a;
});
console.log(res); [88, 44, 12, 1, 'A', 'a']
console.log(arr); [88, 44, 12, 1, 'A', 'a']

不改变原数组

(1)join

        语法:数组名.join(连接符)

        作用:将数组转为字符串

        返回值:返回连接好的字符串

  var arr = ["hh", "yy", "ee"];var res = arr.join("---");console.log(res, typeof res); //hh---yy---ee string   stringconsole.log(arr); //["hh", "yy", "ee"]

        若连接符为空,则默认用逗号连接

//   var res = arr.join();
//   console.log(res, typeof res); //hh,yy   string
//   console.log(arr); //['hh', 'yy']
(2)concat

        语法:数组名.concat()

        作用:拼接数据或数组

        返回值:返回拼接好的新数组

var arr = ["hh", "yy"];var res = arr.concat("加入1");
console.log(res); //['hh', 'yy', '加入1']//和push的区别
//1.concat会将要拼接进去的数组拆分开  一个个的加入,push会将要加入的数组作为整体
//2.push会改变原数组  concat不会 
var res2 = arr.concat(["数据1", "数据2"]); //['hh', 'yy', '数据1', '数据2']
console.log(res2);var res3 = arr.push(["数据1", "数据2"]); //["hh", "yy",['数据1', '数据2']]
(3)slice

        语法:数组名.slice(开始索引,结束索引)

        作用:截取数据

        返回值:返回截取数据组成的新数组

var arr = ["a", "b", "c", "d", "e"];
//开始索引和结束索引都不写截取整个数组
var res = arr.slice();
console.log(res);         //['a', 'b', 'c', 'd', 'e']//开始索引不写,默认为0
var res1 = arr.slice("", 2);
console.log(res1);         //['a', 'b']//结束索引不写,默认截取到最后一个
var res2 = arr.slice(2);
console.log(res2);         //['c', 'd', 'e']//包前不包后(包含开始索引,不包含结束索引位置的数据)
var res3 = arr.slice(0, 2);
console.log(res3);        //['a', 'b']
(4)filter

        语法:数组名.filter(function(item,index.origin){})

        作用:过滤符合条件的项

        返回值:返回新数组,包含满足条件的项,若没有返回空数组

var arr = [1, 2, 3, 4, 5, 6, 7];
//item表示数组的每一项
//index表示数组的索引
//origin表示原数组,此案例表示arr
var res = arr.filter(function (item, index, origin) {return item > 4;  //返回大于4的数据
});
console.log(res);       //[5,6,7]
(5)findIndex

        语法:数组名.findIndex(function(item,index.origin){})

        作用:找到符合条件的第一个索引

        返回值:返回对应的索引,没有符合条件的返回-1

var arr = [1, 8, 3, 4, 5, 6, 7];
var res = arr.findIndex(function (item, index, origin) {return item > 4;
});
console.log(res);  //1var res1 = arr.findIndex(function (item, index, origin) {return item > 10;
});
console.log(res1); //-1
(6)find

        语法:数组名.find(function(item,index.origin){})

        作用:找到第一个满足条件的项

        返回值:返回满足条件的值

      var arr = [1, 8, 3, 4, 5, 6, 7];var res = arr.find(function (item, index, origin) {return item > 4;});console.log(res);     //8var res1 = arr.find(function (item, index, origin) {return item > 10;});console.log(res1); //undefined
(7)foreach

        语法:数组名.foreach(function(item,index.origin){})

        作用:遍历每一项

        返回值:没有返回值

      var arr = [1, 8, 3, 4, 5, 6, 7];var res = arr.forEach(function (item) {return item + 1;});console.log(res);     //undefined
(8)map

        语法:数组名.map(function(item,index.origin){})

        作用:映射数组(可以理解为每一项都做相同的操作)

        返回值:返回一个和原数组相同长度的数组,其数据经过加工

      var arr = [1, 8, 3, 4, 5, 6, 7];var res = arr.map(function (item) {return item + 1;  //每一项都加1});console.log(res); //[2, 9, 4, 5, 6, 7, 8]
(9)indexOf

        语法:数组名.indexOf(字符,开始索引)

        作用:从前向后查找数据第一次出现的位置

        返回值:返回查找到的索引,没有找到返回-1

      var arr = ["zz", "ll", "ww", "zz", "ll"];//查找'zz'第一次出现的索引var res = arr.indexOf("zz");console.log(res);        //0//从索引2开始查找'zz'第一次出现的索引var res1 = arr.indexOf("zz", 2);console.log(res1);        //3
(10)lastIndexOf

        语法:数组名.lastIndexOf(字符,开始索引)

        作用:从后向前查数据第一次出现的索引

        返回值:返回对应的索引,没找到返回-1

     var arr = ["zz", "ll", "ww", "zz", "ll"];//倒着看'zz'第一次出现的索引var res = arr.lastIndexOf("zz");console.log(res); //3//从索引3的位置倒着看'll'第一次出现的索引var res1 = arr.lastIndexOf("ll", 3);console.log(res1); //1var res2 = arr.lastIndexOf("hh");console.log(res2); //-1
(11)every

        语法:数组名.every(function(item,index,origin){})

        作用:判断所有项是否都满足某个条件

        返回值:如果都满足一个条件,那么返回true,否则返回false

      var arr = [2, 9, 4, 5, 6, 7, 8];var res = arr.every(function (item, index, origin) {return item > 1;    //条件});console.log(res);     //truevar res1 = arr.every(function (item, index, origin) {return item > 5;});console.log(res1);       //false
(12)some

        语法:数组名.some(function(item,index,origin){})

        作用:判断是否有一项满足条件

        返回值:如果有一项满足就返回true,否则返回fasle

      var arr = [2, 9, 4, 5, 6, 7, 8];var res = arr.some(function (item, index, origin) {return item > 1;});console.log(res); //truevar res1 = arr.some(function (item, index, origin) {return item > 100;});console.log(res1); //false
(13)includes

        语法:数据.includes(数据)

        作用:判断是否包含此项

        返回值:若包含为true,否则为false

      var arr = [2, 9, 4, "zz", "ll", 7, 8];var res = arr.includes("aa");console.log(res);        //falsevar res1 = arr.includes(9);console.log(res1);    //true
(14)reduce

        语法:数组名.reduce(function(prev,item,index,origin){},init)

                 prev:迭代的结果

                 init:迭代的初始值

        作用:根据条件对每项做数据处理,将每次循环结构叠加

        返回值:返回迭代的值

      var arr = [1, 1, 1, 1, 1];//没有设置init,那么prev默认为0//循环次数是arr.length-1//循环从[1]索引1开始var res = arr.reduce(function (prev, item, index, origin) {return prev + item;});console.log(res);        //5//设置init,那么prev=init的值//循环次数是arr.length//循环从[0]索引0开始var res1 = arr.reduce(function (prev, item, index, origin) {return prev + item;}, 100);console.log(res1);      //105

 上一篇:14.js数组-CSDN博客

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

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

相关文章

【Android14 ShellTransitions】(一)开篇

说来惭愧,AndroidU都已经开发这么久了,但是我还没有整理过ShellTransition相关的知识。我本来希望能够系统的写一篇关于ShellTransition的笔记出来,但是发现一来这是一个比较庞大的模块,二来我个人能力有限,对ShellTra…

插件“猫抓”使用方法 - 浏览器下载m3u8视频 - 合并 - 视频检测下载 - 网课下载神器

前言 浏览器下载m3u8视频 - 合并 - 网课下载神器 chrome插件-猫抓 https://chrome.zzzmh.cn/info/jfedfbgedapdagkghmgibemcoggfppbb 步骤: P.s. 推荐大佬的学习视频! 《WEB前端大师课》超级棒! https://ke.qq.com/course/5892689#term_id…

ty1208-z盒子 刷 armbian

ty1208-z,1g ram 8g emmc,s905m的cpu 1.安装“win32diskimager-1.0.0-install.exe”,使用它的默认设置制作“Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_20190401.img”U盘启动盘。 2.将U盘启动盘中根目录下的aml_autoscript.zip改名为updat…

discuzX2.5的使用心得 札记一

从开始接受php论坛的开发任务,对php感兴趣的我开始迷恋上discuz这个产品了, 像戴志康这样的创新人才,是我们这代人的骄傲和学习的榜样 应该是了解一下,啥事discuzX2.5,百度看一下 discuz x2.5_百度百科 看完百度词条…

Vue 子组件向父组件传值

1、使用自定义事件 ($emit) 这是Vue中最常用的子组件向父组件传递数据的方式。子组件通过触发一个自定义事件&#xff0c;并附加数据作为参数&#xff0c;父组件则监听这个事件并处理传递过来的数据。 子组件 (发送数据)&#xff1a; <template><button click"…

Python + pytest + allure框架搭建源码

框架功能讲解 common # 配置 config.yaml # 公共配置 setting.py # 环境路径存放区域 data # 测试用例数据 Files # 上传文件接口所需的文件存放区域 logs # 日志层 report # 测试报告层 test_case # 测试用例代码 __init__.py # 读取测试用例文件&#xff0c;并…

JJJ:WARN,WARN_ON,BUG_ON

WARN用法&#xff1a; WARN(i > 1, “if i > 1, will print”) 当满足一些条件时&#xff0c;该函数会输出一条带有调试信息的警告消息&#xff0c;并打印出相应的调用栈信息&#xff0c;以便于开发人员进行调试。 不要过度使用&#xff0c;否则会造成系统性能下降。在生…

C语言 | Leetcode C语言题解之第101题对称二叉树

题目&#xff1a; 题解&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ bool isSymmetric(struct TreeNode* root) {if (root NULL) return true;//如果根为空直接…

selenium 爬取今日头条

由于今日头条网页是动态渲染&#xff0c;再加上各种token再验证&#xff0c;因此直接通过API接口获取数据难度很大&#xff0c;本文使用selenium来实现新闻内容爬取。 selenium核心代码 知识点&#xff1a; 代码中加了很多的异常处理&#xff0c;保证错误后重试&#xff0c;…

嵌入式交叉编译:ntpdate

下载 Index of /~ntp/ntp_spool/ntp4 交叉编译openssl 交叉编译嵌入式openssl&#xff0c;关键是在config中指定编译器前缀-CSDN博客 交叉编译 DEST_DIR${HOME}/ntp_server CROSS_NAMEaarch64-mix210-linux OPENSSL_DIR${HOME}/build_libsexport PATH/opt/linux/x86-arm/$…

SerDes系列之CTLE均衡技术

CTLE&#xff08;连续时间线性均衡&#xff09;是一种施加在接收器上的线性模拟高通滤波器&#xff0c;通过衰减低频信号分量&#xff0c;以补偿奈奎斯特频率附近的衰减比例&#xff0c;从而实现信道补偿。当低频信号分量向下衰减并推入底噪范围时&#xff0c;CTLE就会失去调节…

C#利用WinForm实现可以查看指定目录文件下所有图片

目录 一、关于Winform 二、创建应用 三、功能实现 四、代码部分 一、关于Winform Windows 窗体是用于生成 Windows 桌面应用的 UI 框架。 它提供了一种基于 Visual Studio 中提供的可视化设计器创建桌面应用的高效方法。 利用视觉对象控件的拖放放置等功能&#xff0c;可…

支付风险智能风控应用与评估指引

伴随宏观经济环境变化、支付监管愈趋从严、金融科技不断创新、支付参与主体日趋多元&#xff0c;支付行业正面临着业务发展与合规经营、支付便捷与安全、数据挖掘与隐私保护等诸多挑战&#xff0c;支付风险的复杂性与日俱增&#xff0c;共同建设安全支付生态的必要性不断凸显&a…

什么是Axios

2024年5月23日&#xff0c;周四上午 Axios 是一个基于Promise的HTTP客户端&#xff0c;用于浏览器和node.js环境。它提供了一个简单易用的API来发送HTTP请求&#xff0c;并支持Promise API&#xff0c;这使得异步请求变得容易处理。 Axios的一些主要特点包括&#xff1a; Pro…

ts:条件类型

1. 条件类型表达式 T extends U ? X : Y 基本语法&#xff1a; T extends U ? X : Y &#xff08;T 和 U 是类型&#xff0c;而 X 和 Y 是类型或者类型表达式。&#xff09; 用于判断 T的每个成员 是否是 U 的子类型。如果是&#xff0c;则返回 X&#xff0c;否则返回 Y。最终…

flannel详细介绍

一、前言 Flannel 是一个简单、高效的容器网络解决方案&#xff0c;适用于需要在多个主机上运行容器的场景。它通过虚拟网络技术和 IP 地址管理来实现容器之间的通信和跨主机连接&#xff0c;为容器平台提供了可靠的网络基础设施&#xff0c;flannel有三种模式&#xff0c;分别…

14、24年--信息系统管理——管理方法

主要考选择题,2分左右,案例涉及的概率很低,论文写作不会单独考。 1、管理基础 1.1 层次结构 信息系统是对信息进行采集、处理、存储、管理和检索,形成组织中的信息流动和处理,必要时能向有关人员提供有用的信息的系统。它是由人、技术、流程和数据资源组成的人机系统,目…

smallpdf安装

smallpdf安装 此软件可以很好的把ppt转换的pdf再转回ppt 安装参考链接

通过路径遍历所实现的RCE

漏洞原理 路径遍历&#xff1a;这种类型的安全漏洞允许攻击者访问应用程序本不打算公开的文件和目录。通过构造特殊的输入&#xff0c;如使用../&#xff08;向上遍历目录&#xff09;的序列&#xff0c;攻击者可以逃离受限的目录&#xff0c;访问文件系统上的其他位置。 利用…

【Python】—— 公共的方法

目录 &#xff08;一&#xff09;公共操作 1.1 公共操作之运算符加号 1.2 公共操作之运算符乘号 1.3 公共操作之运算符判断数据是否存在 &#xff08;二&#xff09;公共方法 2.1 公共方法-len 2.2 公共方法-del 2.3 公共方法-max和min 2.4 公共方法-range 2.5 公共方…