var nums = [1,8,9,3],num = nums.push(6);console.log(num);

思否 问答 👍 2 含 AI 优化版

问题

var nums = [1,8,9,3],num = nums.push(6);console.log(num);

在 SegmentFault 查看原问题 →

由大模型辅助整理,保留原意,优化结构与可读性。

问题概述

给定代码 var nums = [1,8,9,3], num = nums.push(6); console.log(num);,提问者想知道 console.log(num) 最终会输出什么,以及为什么。

涉及技术

JavaScript、Array

期望结果

理解 Array.prototype.push() 方法的返回值规则。

回答

原始回答

push返回的是个数

AI 优化 · 回答整理

解答思路

Array.prototype.push() 的返回值不是新增的元素,而是执行 push 之后数组的最新长度。

示例代码

var nums = [1, 8, 9, 3];
var num = nums.push(6);
console.log(num); // 5
console.log(nums); // [1, 8, 9, 3, 6]

详细说明

push 会把参数追加到数组末尾并原地修改数组本身,返回值是追加后数组的 length。本例中 nums 原有 4 个元素,push(6) 之后变为 5 个元素,所以 num 的值是 5,而不是被追加的元素 6 或数组本身。

小结

push() 返回的是新数组的长度,不是新元素或数组,这一点在链式操作或依赖返回值做逻辑判断时要特别注意。

由大模型辅助整理,保留原意,补充结构与代码格式。

回答转载自 SegmentFault

评论

评论功能即将开放。你也可以通过 邮件GitHub Issue 反馈。