news 2026/7/26 0:36:04

JS如何把数据添加到列表中

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JS如何把数据添加到列表中

在JavaScript中,向列表(数组)添加数据是一项基础且高频的操作。无论是动态生成内容、处理用户输入还是与后端API交互,掌握数组操作方法都是前端开发者的必备技能。本文将详细介绍几种常用的添加数据到数组的方法,并附上代码示例。


一、基础方法:push()

push()是最常用的数组方法之一,它在数组末尾添加一个或多个元素,并返回新的数组长度。

constfruits=['apple','banana'];constnewLength=fruits.push('orange');console.log(fruits);// ['apple', 'banana', 'orange']console.log(newLength);// 3

特点

  • 直接修改原数组(非纯函数)
  • 可以一次添加多个元素
  • 返回新长度

二、在开头添加元素:unshift()

如果需要在数组开头添加元素,可以使用unshift()方法:

constcolors=['blue','green'];colors.unshift('red');console.log(colors);// ['red', 'blue', 'green']

注意unshift()同样会修改原数组,且在大型数组上性能略低于push()


三、非破坏性添加:concat()

如果需要保留原数组不变(不可变数据),可以使用concat()方法:

constnumbers=[1,2];constnewNumbers=numbers.concat(3);console.log(numbers);// [1, 2]console.log(newNumbers);// [1, 2, 3]

优势

  • 不会修改原数组
  • 可以合并多个数组
  • 适合React/Vue等需要状态不可变的框架

四、ES6扩展运算符

ES6提供了更灵活的扩展运算符...来合并数组:

constarr1=[1,2];constarr2=[...arr1,3];// 末尾添加constarr3=[0,...arr1];// 开头添加console.log(arr2);// [1, 2, 3]console.log(arr3);// [0, 1, 2]

适用场景

  • 需要同时合并多个数组时
  • 在函数参数中传递数组元素时

五、使用splice() 指定位置添加

splice()可以在任意位置添加元素:

constletters=['a','c'];letters.splice(1,0,'b');// 在索引1处插入console.log(letters);// ['a', 'b', 'c']

参数说明

  • 第一个参数:起始索引
  • 第二个参数:要删除的元素数量(0表示不删除)
  • 后续参数:要添加的元素

六、实际应用示例

1. 动态添加用户输入到列表

<inputtype="text"id="itemInput"><buttononclick="addItem()">添加</button><ulid="itemList"></ul><script>constitems=[];functionaddItem(){constinput=document.getElementById('itemInput');consttext=input.value.trim();if(text){items.push(text);// 添加到数组input.value='';// 清空输入框renderList();// 重新渲染列表}}functionrenderList(){constlist=document.getElementById('itemList');list.innerHTML=items.map(item=>`<li>${item}</li>`).join('');}</script>

2. 合并多个数据源

constdefaultItems=['加载中...'];constfetchedData=['item1','item2'];constuserAdded=['custom'];// 合并数据(保留默认项在开头)constfinalList=[...defaultItems,...fetchedData,...userAdded];

七、性能对比

对于大型数组(>10,000元素):

  • push()/pop()最快
  • unshift()/shift()最慢(需要移动所有元素)
  • concat()和扩展运算符会创建新数组,适合小数据量

总结

方法位置修改原数组适用场景
push()末尾通用添加
unshift()开头需要保持顺序时
concat()末尾需要不可变性时
…扩展符任意ES6+现代开发
splice()任意精确控制位置

根据具体需求选择合适的方法:

  • 需要修改原数组 →push()/unshift()/splice()
  • 需要不可变性 →concat()/扩展运算符
  • 需要高性能 → 优先使用push()

希望本文能帮助你全面掌握JavaScript中数组添加操作!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 0:35:37

Agent Skills:AI智能体规模化落地的基础设施

生成式AI发展至今,大模型的基础推理能力早已不是行业瓶颈,真正阻碍AI智能体(Agent)从演示原型走向规模化、行业深度落地的,始终是两大核心难题:一是能力扩展的标准化、可控性与可复用性,二是行业知识与业务经验的轻量化、可持续沉淀。 从最早的原生Function Call,到插…

作者头像 李华
网站建设 2026/7/14 14:31:52

基于粤嵌GEC6818开发板的Linux电子相册开发实战

1. 项目背景与开发板介绍 第一次拿到粤嵌GEC6818开发板时&#xff0c;我对着这块巴掌大的板子研究了半天。这块开发板虽然体积小&#xff0c;但功能相当强大&#xff0c;搭载了四核Cortex-A53处理器&#xff0c;主频能达到1.3GHz&#xff0c;完全能满足电子相册这种嵌入式应用的…

作者头像 李华
网站建设 2026/7/14 14:31:51

从零解析Cline:揭秘VS Code开源AI助手的架构奥秘

1. Cline是什么&#xff1f;VS Code开发者的AI助手新选择 如果你是一名VS Code的重度用户&#xff0c;最近可能已经注意到一个名为Cline的开源项目在开发者社区引起了不小的轰动。作为一个完全免费的VS Code插件&#xff0c;Cline将AI能力深度集成到开发环境中&#xff0c;让开…

作者头像 李华
网站建设 2026/7/14 14:31:51

2026年企业级CMS白皮书:基于信创适配与等保要求的7款系统测评

2026年&#xff0c;随着《数据安全法》全面落地及“信创替代”进入攻坚期&#xff0c;企业及政府机构在选型CMS&#xff08;内容管理系统&#xff09;时&#xff0c;面临的早已不是“功能多不多”、“模板美不美”的旧问题。真正的核心拷问是&#xff1a;这套系统能否帮你通过等…

作者头像 李华
网站建设 2026/7/14 14:31:53

Qwen3-32B部署教程:4090D单卡运行32B模型的显存占用监控与优化技巧

Qwen3-32B部署教程&#xff1a;4090D单卡运行32B模型的显存占用监控与优化技巧 1. 环境准备与快速部署 1.1 硬件与系统要求 在开始部署Qwen3-32B模型前&#xff0c;请确保您的硬件配置满足以下最低要求&#xff1a; 显卡&#xff1a;NVIDIA RTX 4090D 24GB显存&#xff08;…

作者头像 李华
网站建设 2026/7/14 14:31:50

opencode终端直接运行python 命令

OpenCode Windows 桌面端&#xff0c; 目标是在终端里直接运行 python xxx.py&#xff0c;且固定使用 安装的python 环境一、确认 OpenCode 配置只保留最小可用项你当前可用的全局配置是&#xff1a;{"$schema": "https://opencode.ai/config.json","…

作者头像 李华