前端数组操作

JavaScript数组是前端开发中最常用的数据结构之一,下面我将详细介绍数组的创建、操作和常用方法。


一、数组创建方式

  1. 字面量创建‌(最常用方式):

var arr1 = []; // 空数组var arr2 = [1, 2, 3]; // 带初始值
  1. 构造函数创建‌:

var arr3 = new Array(); // 空数组var arr4 = new Array(4); // 长度为4的空数组var arr5 = new Array(15, 16, 17); // 带初始值

ES6新增的Array.of()‌:

let arr6 = Array.of(1, 2); // [1, 2]let arr7 = Array.of(3); // [3]


二、数组基本操作方法

增删元素方法

  1. push()‌ - 末尾添加元素,返回新长度

const arr = [1, 2, 3];arr.push(4, 5); // [1, 2, 3, 4, 5]
  1. pop()‌ - 删除并返回最后一个元素

const last = arr.pop(); // 5, arr变为[1, 2, 3, 4]

      unshift()‌ - 开头添加元素,返回新长度

arr.unshift(0); // [0, 1, 2, 3, 4]

     shift()‌ - 删除并返回第一个元素

const first = arr.shift(); // 0, arr变为[1, 2, 3, 4]

‌     splice()‌ - 指定位置增删元素

// 从索引1开始删除2个元素,并插入'a','b'arr.splice(1, 2, 'a', 'b'); // [1, 'a', 'b', 4]

其他常用方法

‌concat()‌ - 合并数组,不改变原数组

const newArr = arr.concat([5, 6]); // [1, 'a', 'b', 4, 5, 6]

join()‌ - 数组转字符串

const str = arr.join('-'); // "1-a-b-4"

slice()‌ - 截取子数组

const subArr = newArr.slice(1, 3); // ['a', 'b']

reverse()‌ - 反转数组

newArr.reverse(); // [6, 5, 4, 'b', 'a', 1]

三、高阶数组方法

  1. map()‌ - 映射新数组

  2. const ids = tableData.map(v => v.id); // 提取id数组

    filter()‌ - 过滤数组

  const nums = [1, 2, 3, 4].filter(n => n > 2); // [3, 4]

‌     forEach()‌ - 遍历数组

  nums.forEach(n => console.log(n));

     find()/findIndex()‌ - 查找元素/索引

  const found = nums.find(n => n === 3); //3

四、数组使用场景

  1. 格式化后端数据

  2. const formatted = rawData.map(item => ({  ...item,  yearMonth: item.date.split('-').slice(0, 2).join('-')}))
  3. 实现栈和队列

  4. 栈:push()/pop()

  5. 队列:push()/shift()

      数据转换

  const typeMap = {aaa: "审核通过", bbb: "审核不通过"};   const formattedType = rawType.map(v => typeMap[v] || v);


标签:

相关文章

个人学习计划

学习计划是一个帮助你提高学习效率和使用时间的有效工具。以下是一个可能的学习计划:目标设定。 在开始学习之前,明确你的学习目标和目的地,这有助于你制定实际可行的计划。分解任务。 将大...

前端消息队列技术解析

一、核心应用场景‌异步任务处理‌用户行为日志上报、实时通知推送等场景,通过消息队列实现非阻塞式通信,避免页面卡顿‌典型代码模式对比:// 传统同步模式(阻塞页面) async f...

Vue 3中数组与对象

一、Vue 3响应式原理与基础操作1. 响应式系统实现Vue 3使用Proxy替代了Vue 2中的Object.defineProperty来实现响应式系统,带来了以下优势:‌全面性‌:可以监听对象的...

UniApp中的HTTP请求

1. UniApp内置HTTP请求方法UniApp提供了uni.request作为内置的HTTP请求API,具有以下特点:‌跨平台兼容‌:已为iOS、Android、H5等平台做了优化和适配‌简单易用...

vue 装饰器

Vue 装饰器是一种基于 ES7/TypeScript 的语法糖,主要用于增强 Vue 组件的功能,简化代码结构并提升开发效率。以下是其核心特性和应用场景的详细解析:一、‌装饰器的本质与作用‌装饰器(...

弱类型与强类型

弱类型与强类型是编程语言类型系统的两种重要分类,主要区别体现在类型转换的严格性和处理方式上:1. 核心区别‌强类型语言‌:要求显式类型声明,禁止隐式类型转换类型错误会在编译时或运行时直接报错(如Jav...