首页 > 解决方案 > JavaScript 中的数组有键属性吗?

问题描述

我在 JavaScript 中磕磕绊绊,想知道为什么我的测试仍然有效,尽管我将常量从对象更改为变量。

我知道对象属性可以通过键值访问,例如

const object = {};
object['keyValue'] = 'property';

// creates this object
{ keyValue: 'property' };

我认为这仅适用于对象,但是,我不小心执行了以下代码:

const array = [];
array['maybeKeyValue'] = { keyValue: 'property'};

// this created the following array
[ship: {keyValue: 'property'}]

// i can also access the object in the array
const obj = array['ship'];
// returns the created object

我还注意到array.lengthis 0 并且array.entries()不会创建有效的迭代器,这对我来说很奇怪。这里发生了什么?这是在对象中存储具有值的键的有效替代方法吗?

标签: javascriptarraysjavascript-objects

解决方案


推荐阅读