gpt4 book ai didi

javascript - 如何通过这些对象的属性访问数组中的对象?

转载 作者:行者123 更新时间:2023-11-30 12:18:18 25 4
gpt4 key购买 nike

所以最近我不得不检查用户是否安装了某个插件,这显然很容易完成:

if(typeof navigator.plugins['plugin name'] === 'undefined'){
alert('Please install plugin')
}

这对我来说并不奇怪,我认为它只是访问了分配给 plugins 对象的 plugin name 的对象。 (比如 plugins['plugin name'] = {...})奇怪的是,如果你 console.log navigator.plugins 变量,它会这样显示:

>PluginArray
>0: Plugin
>1: Plugin
>2: Plugin

因此,可以使用 navigotor.plugins['Plugin name']navigator.plugins[i] 访问这些 Plugin 对象!

我的问题是,我怎样才能实现类似的东西,以便我可以通过索引(轻松迭代和保留数组功能)和所述对象的属性(通过 ID 或名称轻松访问)访问数组对象?

navigator.plugins 对象有 PluginArray 原型(prototype),所以我想这个类会以某种方式覆盖 obj['index'] 访问器并查找对象(s ?)将给定索引作为其“名称”属性,通过访问时迭代,维护将数字索引映射到名称的内部数组([i] ='index')或将名称映射到它们的内部对象索引(.index = i)。

那么对最佳方法有什么想法吗?

编辑:正如 Oriol 指出的那样,您可以将同一个对象分配给两个键 (arr[0] = arr[obj.name] = obj),这可以很好地工作如果 obj.name 是唯一的,如果不是,您可能会覆盖之前设置的 key 。如果您想使用唯一数据库索引之类的东西作为第二个键,这绝对是一种便宜且简单的解决方案。

最佳答案

您可以为多个属性分配相同的值:

var obj = {};
obj[0] = obj.name0 = value0;
obj[1] = obj.name1 = value1;
obj[2] = obj.name2 = value2;

关于javascript - 如何通过这些对象的属性访问数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31786049/

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