You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中{length}=arr这类数组解构语法的含义是什么?

语法说明

你标注的{ length } = arr属于JavaScript的对象解构赋值语法,是完全合法的写法:

  • 数组在JS中本质是特殊的对象类型,内置了length属性,因此可以直接通过对象解构提取该属性,等效于普通写法let length = arr.length
  • 该写法也支持提取所有带length属性的类数组对象(比如DOM节点集合NodeList、函数参数集合arguments等),通用性更强
在循环中的作用

把length的提取写在for循环的初始化语句里,主要有两个目的:

  • 一次性在循环开始前获取到数组长度,避免每次循环执行i < arr.length判断时重复读取属性,属于传统的性能优化写法(现代JS引擎已经对这类场景做了自动优化,实际性能差异极小)
  • 简化代码,减少重复的arr.length书写
完整reduce函数逻辑

这段代码是原生数组reduce方法的极简实现,执行逻辑如下:

  1. 接收三个入参:归并处理函数reducer、累加器初始值initial、待处理数组arr
  2. 初始化累加器acc为传入的初始值
  3. 遍历数组每一项,调用reducer传入当前累加器值和当前遍历的数组元素,将返回结果重新赋值给累加器
  4. 遍历结束后返回最终的累加器值
    你给出的调用示例就是对数组[1,2,3]做累加计算,最终结果为6。

内容的提问来源于stack exchange,提问作者spb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 04:36:06