JS中获取对象最后一个键为何需使用length-1?
为什么获取对象最后一个键要减1?
- 首先明确
Object.keys(myObject)的返回值:它会把对象的键转换成从0开始索引的数组。 - 数组的
length属性是元素的总个数,但数组索引是从0开始计数的——比如有3个元素的数组,索引是0、1、2,对应的length是3。 - 所以要取最后一个元素,必须用
length - 1来拿到最后一个元素的索引。如果直接用length当索引,相当于去访问数组里不存在的位置,自然返回undefined。
举个实际例子:
const myObject = { name: 'Alice', age: 25, city: 'Beijing' }; const keys = Object.keys(myObject); // 得到 ['name', 'age', 'city'] console.log(keys.length); // 输出3 console.log(keys[3]); // 输出undefined,因为数组最大索引是2 console.log(keys[2]); // 输出'city',也就是最后一个键
内容的提问来源于stack exchange,提问作者user_unknown
相关产品推荐
相关产品推荐

