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);
由大模型辅助整理,保留原意,优化结构与可读性。
问题概述
给定代码 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