gpt4 book ai didi

javascript - 以对象作为键(不是字符串而是唯一对象)的关联映射的 javascript 方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:12 26 4
gpt4 key购买 nike

我正在寻找使用对象作为键的关联映射/数组/散列的 javascript 方法。使用 flash.utils.Dictionary 替换您在 ActionScript 3 中可以执行的操作。我确信 java 和 C# 也有类似的东西。

它的工作方式与普通的基于通用对象的 assoc[key] 相同,但是您使用整个对象作为键而不是基于字符串的属性(它不会像 Object 那样在 toString() 上匹配,而是在唯一实例上匹配)。非常方便地装饰您不拥有的对象(通过使用对象作为键并将您的装饰作为值)。

伪代码:

decorations[objectA] = [lights, sparkles, ..];
decorations[objectB] = [skulls, spikes, ..];

if(someObject in decorations)
updateDecorations(someObject , decorations[someObject])

javascript 中的插图以及为什么它不适用于对象:

// make two objects with same toString() return value
var objA = {toString:function(){return 'foo'}};
var objB = {toString:function(){return 'foo'}};

//use objects as keys
var assoc = {};
assoc[objA] = 'dataA';
assoc[objB] = 'dataB';

// seperate instances are not equal
console.log(objA == objB);
// still same data associated: dataB, dataB
console.log(assoc[objA]);
console.log(assoc[objB]);

//with a Dictionary instead of this would be dataA, dataB

问题的要点是我只需要在对象上进行匹配(它正在被其他一些你不能干涉的进程使用,但我们仍然需要关联)。所以没有魔法 .__hash Prop 或 toString() 重载(如果可能)。

有什么想法吗?

编辑:我查了一下,但都是 toString() 或添加魔术 Prop

最佳答案

前段时间用JS写了一个字典类。这绝对不理想,因为它使用数组来存储值和键,但适用于小型集合。

您可以在这里找到它: https://github.com/creynders/creynders-js-lib

关于javascript - 以对象作为键(不是字符串而是唯一对象)的关联映射的 javascript 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com