当前位置: 首页 > news >正文

11-js数组(ESMAScript)

数组

数组是一种特殊的对象。里面可以放基本类型数据也可以放对象

let arr=new Array("a","b","c");
console.log(arr[1])//输出b

一、通过下标访问数组

除了直接访问还可以使用at,at的参数为负数时表示从后往前数。(直接访问下标不能为负数)

let arr=new Array("a","b","c","d","e","f");
// 常见访问方式
console.log(arr[1])//输出b
// at访问
console.log(arr.at(-1))//输出f

二、新增或删除数组元素

2.1.push尾部新增元素

2.2.pop尾部删除元素

2.3.unshift头部新增元素

2.4.shift头部删除元素

let arr=new Array("a","b","c","d","e","f");
// push
arr.push("1")
console.log(arr)//输出['a', 'b', 'c', 'd', 'e', 'f', '1']
// pop
arr.pop()
console.log(arr)//输出['a', 'b', 'c', 'd', 'e', 'f']
// unshift
arr.unshift("1","2")
console.log(arr)//输出['1', '2', 'a', 'b', 'c', 'd', 'e', 'f']
// shift
arr.shift()
console.log(arr)//输出['2', 'a', 'b', 'c', 'd', 'e', 'f']

2.5.splice可增删替换元素(会修改原数组)

let arr=new Array("a","b","c","d","e","f");
// 参数一:从什么位置开始操作元素
// 参数二:删除元素的个数
// 参数三:新增的元素// 删除
arr.splice(1,2)
console.log(arr)//输出['a', 'd', 'e', 'f']
// 新增
arr.splice(1,0,"1","2")
console.log(arr)//输出['a', '1', '2', 'd', 'e', 'f']
// 替换(也就是删除后新增)
arr.splice(1,1,"6")
console.log(arr)//输出['a', '6', '2', 'd', 'e', 'f']

三、截断

可以通过设置length截断数组

let arr=["a","b","c","d","e","f"];
arr.length=1;
console.log(arr)//输出['a']

因此如果要清空数组可以设置对应的length=0

四、遍历(3种for的使用)

let arr=["a","b","c","d","e","f"];
// 1.for
for(let i=0; i<arr.length;i++){console.log(arr[i])
}
// 2.for...in
for(let index in arr){console.log(index,arr[index])
}
// 3.for...of
for(let item of arr){console.log(item)
}

五、截取slice(不修改原数组)

let arr=new Array("a","b","c","d","e","f");
// 参数一:start,开始位置
// 参数二:end,结束位置,不包括endlet foo=arr.slice(1,3)
console.log(foo)//输出['b', 'c']

六、合并

6.1.push(修改原数组)

直接使用push是将整个数组作为一个元素存入,使用es6语法...可存入数组里的元素

let arr1=["a","b","c"];
let arr2=["1","2","3"];
arr1.push(arr2)
console.log(arr1)//输出['a', 'b', 'c', ["1","2","3"]]
let arr1=["a","b","c"];
let arr2=["1","2","3"];
arr1.push(...arr2)
console.log(arr1)//输出['a', 'b', 'c', '1', '2', '3']

6.2.concat(不修改原数组)

用法和之前的字符串类似

let arr1=["a","b","c"];
let arr2=["1","2","3"];
let arr3=["?","#","%"];
let arr4=arr1.concat(arr2,arr3);
console.log(arr4)//输出['a', 'b', 'c', '1', '2', '3', '?', '#', '%']

6.3.join

let arr1=["a","b","c"];
console.log(arr1.join("-"))//输出a-b-c

七、查找

7.1.indexOf(基本类型查下标)

let arr1=["a","b","c"];
console.log(arr1.indexOf("b"))//输出1

7.2.includes(判断是否存在某基本类型元素)

let arr=["a","b","c","d","e","f","g","h"];
console.log(arr.includes("a"))//输出true

7.3.find(可查对象)

find是高阶函数

在这里插入图片描述

获取对应元素,该示例为获取名为张三的元素

let arr=[{name:"张三",age:18},{name:"李四",age:1},{name:"王五",age:25},
];let person=arr.find((item)=>{return item.name==='张三';
})
console.log(person);

在这里插入图片描述

7.4.findIndex(查对象中符合条件的下标)

let arr=[{name:"张三",age:18},{name:"李四",age:1},{name:"王五",age:25},
];console.log(arr.findIndex((item)=>item.age===18));//输出0

八、排序

8.1.sort

8.1.1.给数字排序
let arr=[50,8,6,85,15,46,2];
arr.sort((a,b)=> a-b);//从低到高排
console.log(arr)//输出[2, 6, 8, 15, 46, 50, 85]
arr.sort((a,b)=> b-a);//从高到低排
console.log(arr)//输出[85, 50, 46, 15, 8, 6, 2]
8.1.2.给对象排序

这个示例是按对象的id排序

let arr=[{id:666,name:"张三",age:18},{id:664,name:"李四",age:1},{id:665,name:"王五",age:25},
];
arr.sort((item1,item2)=>item1.id -item2.id);
console.log(arr)

在这里插入图片描述

8.2.reverse

reverse把数组倒过来

let arr=[50,8,6,85,15,46,2];
arr.reverse()
console.log(arr)//输出[2, 46, 15, 85, 6, 8, 50]
http://www.dtcms.com/a/541604.html

相关文章:

  • 郑州营销型网站建设哪家好网站中的ppt链接怎么做的
  • html + css +js
  • 微算法科技(NASDAQ MLGO)研发基于AI的动态权重学习模型,开启区块链账户关联分析智能新时代
  • K8s基础总结
  • 【系统分析师】预测试卷一:案例分析题目及答案详解
  • HTML 音频/视频
  • 印度做网站设计wordpress 标签设置
  • [Linux 内核]翻译kernel-4.4.94/Documentation/sysctl/vm.txt
  • 做代售机票网站程序寿光网络推广公司
  • 基于springboot同城上门喂遛宠物系统的设计与实现
  • MATLAB相机标定入门:Camera Calibration工具包详解
  • 【文献阅读】将 CNN 推广到图数据
  • 向国外支付网站开发费线上营销图片
  • 电商或游戏平台基于大数据引入AI智能体
  • 网站建设注意哪些西安网站建设制作公司
  • Kotlin 协程实践:深入理解 SupervisorJob、CoroutineScope、Dispatcher 与取消机制
  • 机械革命 GM7ZG7m 蛟龙7 5900HX 黑苹果 EFI
  • 怎样自己建设网站企查查企业信息查询系统官网
  • 介绍Spring Cloud Gateway
  • 成都自适应网站建设域名主机网站导航
  • 【数据结构】队列(Queue)详解——数据结构的“先进先出”
  • 【操作系统】计算机系统概述
  • 为什么Android游戏画面在30帧运行时有抖动现象
  • 做的好的手机网站建设银行官方网站认证
  • 云南建设厅网站备案厂家域名审核怎么做返利网站
  • docker compose配置容器只允许指定的外部IP访问
  • 【postgresql在sql的基础上将frvcd按照逗号分割,核查两个表中frvcd数量是否相同】
  • 考研政治(马原)
  • 电商网站开发工作室商务网站模板
  • 金融交易防护:国密 SSL 证书在网银与移动支付中的核心作用