javascript - 在这种情况下,数组大小在 javascript 中是否重要?

标签 javascript arrays memory-management

每当在页面上单击相应的按钮时,我都会使用数据库中的项目 ID 在 javascript 中创建一个数组。每个数组条目将存储一个自定义对象。

特定数据页的数据库 ID 可以从任何数字开始,例如 80123 到 80223。

所以数组中的第一个条目将类似于 arr[80123]。

现在,当我检查数组的长度时,它会显示 80123 !尽管其中只有 1 个元素,但我考虑过使用关联数组或字符索引数组,但它们缺少我需要的一些基本排序操作。

现在我的问题是“如果数组中只有 1 个元素但数组的长度为 80123,数组实际会消耗多少内存?”

更多信息...

基数不断变化80123只是一个例子。

我使用的代码如下:

function ToggleAction(actionButtonID, action) 
    {
        var extractedID = ExtractNumericIdFromTag(actionButtonID);
        var arrayIndexer = extractedID; // Can update this to make array associative

        if(actionItems[arrayIndexer] == null)
        {
            actionItems[arrayIndexer] 
                = new ActionItem(extractedID, action);
        }
        else
        {
            var ai = actionItems[arrayIndexer];
            ai.action = action;
        }
    }

最佳答案

您的代码没有分配那么多内存,因此您不必担心。 Javascript 数组足够聪明。但是,我仍然认为在这种情况下您应该使用对象而不是数组...

var num = 80123;
var obj = {};
obj[num] = { Name: "Josh" };

alert(obj[80123].Name);

关于javascript - 在这种情况下,数组大小在 javascript 中是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460427/

相关文章:

c++ - 对象数组是如何存储在内存中的?

.net - 清理 GC 的 .NET 数据结构

javascript - 将对象数组分配给基于接口(interface)的数组

c - 二维数组 - 每行都被下一行覆盖

javascript - 如何用符号对数组进行排序?

c - 处理用户输入中的 EOF

c - 使用 getline() 动态分配的具有动态分配的字符串元素的数组

javascript - 侧面导航栏在切换时更改页面内容的对齐方式

javascript - 访问 Angular 5 组件中的 javascript 变量

javascript - 未捕获( promise )SyntaxError : Unexpected end of JSON input