gpt4 book ai didi

javascript - 希望使用 javascript 数组作为散列键,使用任何数组元素检索

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

这就是我想要做的..

var dual = new Array; 
dual=[voter,thisID];
var matrix = new Array;
matrix[dual]=voteint; //this works..

但我想通过一个或两个键(数组)元素轻松访问值:

matrix[*,thisID])=answer; 

除了通配符不以这种方式存在,对吧?

一个人可以做...

matrix[voter+'.'+thisID]=voteint;

并围绕“.”进行正则表达式匹配但是有更好/更简单/更快的方法吗?

最佳答案

> var dual = new Array; 
> dual=[voter,thisID];

第二个赋值替换了最初分配给dual 的数组,使第一个赋值变得无用。可以写成:

var dual = [voter, thisID];

但前提是 voterdual 之前已声明或创建为变量。

> var matrix = new Array;
> matrix[dual]=voteint; //this works..

如上,对矩阵的第一个赋值是多余的。

它通过为 matrix 分配一个属性“工作”,即 dual.toString(),所以如果你写:

var voter = 'foo';
var thisID = 'baz';
var dual = [foo, baz];

然后

matrix[dual] = voteint;

相当于:

matrix['foo,baz'] = voteing;

如果 voteint 之前已被赋值。

but I'd like to easily access values by either or both key (array) element:

> matrix[*,thisID])=answer;

except wildcards don't exist in this way, right?

不是在那种情况下,不是。

one could do...

matrix[voter+'.'+thisID]=voteint;

如果 . 被逗号替换,是的。

and do regex matching around the '.' but is there a better/easier/faster way?

在指示对象的地方使用数组被认为是不好的做法,所以最好在这里使用对象。

您唯一合理的选择是使用 for..in 遍历对象的属性来测试每个属性名称以找到您想要的那个。请注意,您还应该包括 hasOwnProperty 测试以排除继承的可枚举属性。

关于javascript - 希望使用 javascript 数组作为散列键,使用任何数组元素检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417181/

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