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

JavaScript---数组篇

 一、数组定义


JavaScript 中的数组是一种用于存储多个值的有序集合,可以存放任意类型的数据。

let arr = [1, "hello", true, { name: "Tom" }];

二、常用方法总结


1. push()


作用: 向数组末尾添加一个或多个元素,并返回新长度

let arr = [1, 2, 3];
arr.push(4);
console.log(arr); // [1, 2, 3, 4]

2. pop()


作用: 删除并返回数组最后一个元素

let arr = [1, 2, 3];
let last = arr.pop();
console.log(last); // 3
console.log(arr); // [1, 2]

3. shift()


作用: 删除并返回数组第一个元素
 

let arr = [1, 2, 3];
let first = arr.shift();
console.log(first); // 1
console.log(arr); // [2, 3]

4. unshift()


作用: 向数组开头添加一个或多个元素,并返回新长度
 

let arr = [2, 3];
arr.unshift(1);
console.log(arr); // [1, 2, 3]

5. slice(start, end)


作用: 返回从 start 到 end(不包括 end)的新数组(原数组不变)

let arr = [1, 2, 3, 4];
let newArr = arr.slice(1, 3);
console.log(newArr); // [2, 3]

6. splice(index, deleteCount, item1, ...)


作用: 可删除或添加元素,修改数组内容
 

let arr = [1, 2, 3, 4];
arr.splice(2, 1, 'a'); // 从索引2开始删除1个元素,插入'a'
console.log(arr); // [1, 2, 'a', 4]

7. map()


作用: 对数组每个元素执行函数,生成新数组

let arr = [1, 2, 3];
let doubled = arr.map(x => x * 2);
console.log(doubled); // [2, 4, 6]

8. filter()


作用: 过滤出符合条件的元素组成新数组
 

let arr = [1, 2, 3, 4];
let evens = arr.filter(x => x % 2 === 0);
console.log(evens); // [2, 4]

9. reduce((acc, cur) => {}, initialValue)


作用: 将数组元素累计为一个值
 

let arr = [1, 2, 3, 4];
let sum = arr.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 10

10. forEach()
作用: 遍历数组每个元素,无返回值

 

let arr = [1, 2, 3];
arr.forEach(item => console.log(item));
// 输出:1 2 3

11. indexOf(value) / lastIndexOf(value)

作用: 查找指定元素首次/最后一次出现的索引
 

let arr = [10, 20, 30, 20];
console.log(arr.indexOf(20)); // 1
console.log(arr.lastIndexOf(20)); // 3


三、小结图示

方法名是否改变原数组返回值用途说明
push()新数组长度添加元素到末尾
pop()被删除的元素删除最后一个元素
shift()被删除的元素删除第一个元素
unshift()新数组长度添加元素到开头
slice()新数组截取部分元素
splice()被删除的元素数组增删元素
map()新数组映射转换
filter()新数组过滤元素
reduce()累计结果累加器模式
forEach()遍历数组
indexOf()索引查找第一次出现的位置
http://www.lryc.cn/news/576386.html

相关文章:

  • 循环向python异步中增加task的几个方法
  • 【unity游戏开发——网络】网络协议、TCP vs UDP 本质区别
  • 卸载Modelsim/Qustasim方法
  • AngularJS Git 提交消息规范
  • Centos 8设置固定IP
  • Linux通过Crontab实现自启动
  • Grab×亚矩阵云手机:以“云端超级节点”重塑东南亚出行与数字生活生态
  • 第十节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 菜单管理(下)
  • docker部署后端服务的脚本
  • 深入详解:决策树算法的概念、原理、实现与应用场景
  • WHERE 子句中使用子查询:深度解析与最佳实践
  • 设计模式精讲 Day 16:迭代器模式(Iterator Pattern)
  • 如何解决电脑windows蓝屏问题
  • VScode使用usb转网口远程开发rk3588
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • [Linux]从零开始的STM32MP157移植Ubuntu根文件系统教程
  • ubuntu-server 与 ubuntu-live-server 的区别 笔记250628
  • React环境搭建及语法简介
  • Word之空白页删除2
  • 利用GPU加速TensorFlow
  • python多线程详细讲解
  • 【21】C9800配置PSK认证的WLAN
  • 多表连接查询:语法、注意事项与最佳实践
  • 【linux】Vm虚拟机ubuntu的接口ip掉了
  • 电商返利APP架构设计:如何基于Spring Cloud构建高并发佣金结算系统
  • 鸿蒙5:其他布局容器
  • 什么是 PoS(权益证明)
  • LIN总线通讯中的重要概念信号(Signal)、帧(Frame)和 节点(Node)
  • Geollama 辅助笔记:raw_to_prompt_strings_geo.py
  • 鸿蒙5:组件监听和部分状态管理V2