数组的常用方法有哪些

news/2024/10/17 22:20:07/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、数组的常用方法有哪些?
  • 排序方法
  • 转换方法
  • 迭代方法


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、数组的常用方法有哪些?

🌮操作方法
数组基本操作可以归纳为 增、删、改、查,需要留意的是哪些方法对原数组产生影响,哪些方法不会
下面对数组常用的操作方法做一个归纳

🍕下面前三种是对原数组产生影响的增添方法,第四种则不会对原数组产生影响

  • push()
  • unshift()
  • splice()
  • concat()
    push()
    push()方法接收任意数量的参数,并将它们添加到数组末尾,返回数组的最新长度
let colors = [];
let count = colors.push("1","2");
console.log(count)

unshift()
unshift()在数组开头添加任意多个值,然后返回新的数组长度

let colors = new Array();
let count = colors.unshift("1","2");
alert(count);

splice()
传入三个参数,分别是开始位置0(要删除的元素数量)插入的元素,返回空数组

let colors = ["red", "green", "blue"];
let removed = colors.splice(1, 0, "yellow", "orange")
console.log(colors) // red,yellow,orange,green,blue
console.log(removed) // []

concat()
首先会创建一个当前数组的副本,然后再把它的参数添加到副本末尾,最后返回这个新构建的数组不会影响原始数组

let colors = ["1","3","5"];
let colors2 = colors.concat("yell",["bl","br"]);
console.log(colors);
console.log(colors2)

🍳🍳下面三种都会影响原数组,最后一项不影响原数组

  • pop()
  • shift()
  • splice()
  • slice()
    pop()
    pop() 方法用于删除数组的最后一项,同时减少数组的length 值,返回被删除的项
let colors = ["red", "green"]
let item = colors.pop(); // 取得最后一项
console.log(item) // green
console.log(colors.length) // 1

shift()
shift()方法用于删除数组的第一项,同时减少数组的length 值,返回被删除的项

let colors = ["red", "green"]
let item = colors.shift(); // 取得第一项
console.log(item) // red
console.log(colors.length) // 1

splice()
传入两个参数,分别是开始位置,删除元素的数量,返回包含删除元素的数组
slice()
slice() 用于创建一个包含原有数组中一个或多个元素的新数组,不会影响原始数组

let colors = ["red", "green", "blue", "yellow", "purple"];
let colors2 = colors.slice(1);
let colors3 = colors.slice(1,4);
console.log(colors)   // red,green,blue,yellow,purple
concole.log(colors2); // green,blue,yellow,purple
concole.log(colors3); // green,blue,yellow

🧇🧇🧇 即修改原来数组的内容,常用splice
splice()
传入三个参数,分别是开始位置,要删除元素的数量,要插入的任意多个元素,返回删除元素的数组,对原数组产生影响

let colors = ["red", "green", "blue"];
let removed = colors.splice(1, 1, "red", "purple"); // 插入两个值,删除一个元素
console.log(colors); // red,red,purple,blue
console.log(removed); // green,只有一个元素的数组

🥞🥞即查找元素,返回元素坐标或者元素值

  • indexOf()
  • includes()
  • find()
    indexOf()
    返回要查找的元素在数组中的位置,如果没找到则返回 -1
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.indexOf(4) // 3

includes()
返回要查找的元素在数组中的位置,找到返回true,否则false

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.includes(4) // true

find()
返回第一个匹配的元素

const people = [
{name:"1",age:10},{name:"2",age:11}
];
people.find((el,index,array) => el.age < 12 )

排序方法

🧈🥞🧈数组有两个方法可以用来对元素重新排序:

  • reverse()
  • sort()

reverse()
将数组元素方向反转

let values = [1, 2, 3, 4, 5];
values.reverse();
alert(values)

sort()
sort()方法接受一个比较函数,用于判断哪个值应该排在前面

function compare(value1, value2) {if (value1 < value2) {return -1;} else if (value1 > value2) {return 1;} else {return 0;}
}
let values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values);

转换方法

🍞🧈🍞常见的转换方法有:
join()
join() 方法接收一个参数,即字符串分隔符,返回包含所有项的字符串

let colors = ["red", "green", "blue"];
alert(colors.join(","));
alert(colors.join("||"));

迭代方法

🧀🧀 常用来迭代数组的方法(都不改变原数组)有如下:

  • some()
  • every()
  • forEach()
  • filter()
  • map()
    some()
    对数组每一项都运行传入的测试函数,如果至少有1个元素返回 true ,则这个方法返回 true
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let someResult = numbers.some((item, index, array) => item > 2);
console.log(someResult) // true

every()

对数组每一项都运行传入的测试函数,如果所有元素都返回 true ,则这个方法返回 true

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let everyResult = numbers.every((item, index, array) => item > 2);
console.log(everyResult) // false

forEach()
对数组每一项都运行传入的函数,没有返回值

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.forEach((item, index, array) => {// 执行某些操作
});

filter()
对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let filterResult = numbers.filter((item, index, array) => item > 2);
console.log(filterResult); // 3,4,5,4,3

map()
对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组

let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let mapResult = numbers.map((item,index,array)=>item * 2);
console.log(mapResult)//

http://www.ppmy.cn/news/133690.html

相关文章

【一起啃书】《机器学习》第八章 集成学习

文章目录 第八章 集成学习8.1 个体与集成8.2 Boosting8.3 Bagging与随机森林8.4 结合策略8.5 多样性 第八章 集成学习 8.1 个体与集成 集成学习通过构建并结合多个学习器来完成学习任务&#xff0c;有时也被称为多分类器系统、基于委员会的学习等&#xff0c;下面是集成学习的…

MySQL-1-基础

MySQL 简介 mysql-server #提供服务 mysql-client #提供SQL命令 官网地址&#xff1a;https://dev.mysql.com/downloads/ https://downloads.mysql.com/archives/community/查看帮助文档 mysql> ? contents一、安装MySQL 1.1、二进制安装mysql5.7-linux 安装前准备 sh…

基于Python的RESTful API设计:使用Falcon框架

一、引言 RESTful API设计是现代Web和移动应用开发中的重要组成部分。在Python中&#xff0c;有很多库和框架可以帮助我们创建RESTful API&#xff0c;如Flask、Django等。然而&#xff0c;这些框架在设计上倾向于全栈Web开发&#xff0c;可能包含许多我们在创建RESTful API时…

2004药企100强最新排行剖析

2004药企100强最新排行剖析 2004年09月28日 10:13 让无数药企陷入不眠之夜的“2004医药企业100强”终于出台&#xff01;   中国医药企业管理协会秘书长康泓告诉记者&#xff0c;从今年3月起&#xff0c;企业管理协会便开始着手100强的排名工作&#xff0c;历时近半年&…

中国软件公司排行~中国电子信息企业排行~

2007中国软件企业排行榜 2008年05月29日 星期四 16:12 1 华为技术有限公司 622360 2 中兴通讯股份有限公司 601331 3 海信集团有限公司 448641 4 UT斯达康通讯有限公司 386763 5 海尔集团公司 333664 6 神州数码(中国)有限公司 311862 7 浙江浙大网新科技股份有限公司 288781 8…

横山法则(转载)

自发的才是最有效的&#xff0c;激励员工自发地工作 横山法则 日本社会学家横山宁夫横山法则&#xff1a;自发的才是最有效的&#xff0c;激励员工自发地工作 [ 编辑] 横山法则实例 有自觉性才有积极性&#xff0c;无自决权便无主动权。 在管理的过程中&#xff0c;我们常常过…

AWE 2017盛大开幕,跨界生态圈刷新未来

AWE 2017于今日在上海盛大开幕。 随着中国家电及消费电子业转型升级的成果不断涌现&#xff0c;智能创新技术与生态建设布局处于国际领先地位。中国&#xff0c;已经跃升为全球家电、消费电子、智能领域的创新前沿阵地。中国“十三五”的第二年&#xff0c;供给侧结构性改革深…

一个资深系统管理员的O2O实践(三)

------租赁场地 总部基地汉威国际地下商铺&#xff0c;由汉威物业自持&#xff0c;只租不售。按照网上留的电话&#xff0c;联系上租赁部门的销售人员。提前电话预约好&#xff0c;然后上门去洽谈。对方问我们是不是品牌&#xff0c;说项目有统一规划。我说没有开始做&#xff…