最直接、最常用的方法是使用 push() 方法,它会直接修改原数组并返回新长度;2. 使用 push() 时需注意它是“变异方法”,会改变原数组,且返回值是新长度而非数组本身,易导致误用;3. 其他添加元素的方法包括 unshift()(开头添加,性能较差)、concat()(不修改原数组,返回新数组)、展开运算符(...,灵活且保持不可变性)、splice()(精确控制位置插入);4. push() 性能通常良好,均摊时间复杂度为 o(1),在绝大多数场景下不会成为性能瓶颈,远优于 unshift();5. 在大型应用中更应关注数据可变性带来的副作用,现代开发倾向于使用不可变操作如展开运算符或 concat() 以提升可维护性和状态管理清晰度。

JavaScript里,要把新东西塞进一个数组的末尾,最直接、最常用的办法就是用
push()
push()
Array.prototype
array.push(element1, element2, ..., elementN)
举个例子,假设我们有个待办事项列表:
let todos = ['买菜', '写代码'];
console.log('原始数组:', todos); // 原始数组: ['买菜', '写代码']
// 添加一个新事项
let newLength = todos.push('健身');
console.log('添加后数组:', todos); // 添加后数组: ['买菜', '写代码', '健身']
console.log('新长度:', newLength); // 新长度: 3
// 也可以一次性添加多个
todos.push('看书', '冥想');
console.log('再次添加后数组:', todos); // 再次添加后数组: ['买菜', '写代码', '健身', '看书', '冥想']你会发现,
push()
todos
push()
其实
push()
最关键的一点,也是我刚才强调过的:
push()
push()
push()
map()
filter()
let originalArray = [1, 2];
function addElement(arr) {
arr.push(3); // 这里直接修改了 originalArray
return arr; // 返回的其实就是被修改后的 originalArray
}
let modifiedArray = addElement(originalArray);
console.log('Original Array after function:', originalArray); // Original Array after function: [1, 2, 3]
console.log('Modified Array:', modifiedArray); // Modified Array: [1, 2, 3]
// 它们指向的是同一个数组对象!
console.log(originalArray === modifiedArray); // true另外一个点,就是
push()
let newArr = arr.push(item);
newArr
newArr
3
4
push()
push()
JavaScript 提供了好几种往数组里加东西的办法,每种都有自己的脾气和用武之地。
unshift()
push()
unshift()
push()
let queue = ['B', 'C'];
queue.unshift('A');
console.log(queue); // ['A', 'B', 'C']但要注意,
unshift()
push()
push()
concat()
push()
concat()
let arr1 = [1, 2]; let arr2 = [3, 4]; let newCombinedArr = arr1.concat(arr2, 5); // 可以合并数组,也可以合并单个元素 console.log(arr1); // [1, 2] (arr1 没变) console.log(newCombinedArr); // [1, 2, 3, 4, 5]
当你需要基于现有数据生成新数据,而不是修改旧数据时,
concat()
展开运算符(Spread Operator ...
let originalItems = ['apple', 'banana']; let newItems = [...originalItems, 'orange', 'grape']; // 在末尾添加 console.log(newItems); // ['apple', 'banana', 'orange', 'grape'] let evenNewerItems = ['kiwi', ...originalItems, 'pear']; // 也可以在开头或中间添加 console.log(evenNewerItems); // ['kiwi', 'apple', 'banana', 'pear']
展开运算符的优势在于它的灵活性和“不可变”特性——它总是创建一个新数组。这在React/Vue等前端框架的状态管理中非常流行,因为它能帮助你避免意外的副作用,让数据流向更清晰。
splice()
splice()
let list = ['a', 'b', 'd']; // 在索引2的位置(即'd'前面)插入'c',不删除任何元素 list.splice(2, 0, 'c'); console.log(list); // ['a', 'b', 'c', 'd']
splice()
所以你看,虽然
push()
push()
这是一个很好的问题,尤其是在处理大量数据或构建高性能应用时,我们总会下意识地考虑性能。对于
push()
这是因为 JavaScript 引擎在实现数组时,通常会预留一些额外的空间。当你用
push()
push()
push
相比之下,
unshift()
当然,凡事无绝对。如果你的“大型应用”指的是在极其严苛的实时渲染或数据处理场景下,并且数组的每次扩容都恰好触发了昂贵的内存重新分配和拷贝,那理论上是可能遇到微小的性能抖动的。但对于绝大多数日常的 Web 应用开发来说,
push()
更值得思考的,反而不是
push()
[...]
concat()
所以,与其担心
push()
以上就是js 如何用push向数组末尾添加新元素的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号