Javascript 如何定义关联数组?
我想定义我所理解的关联数组(或对象),这样我就有了如下条目: “巴斯”=[1,2,5,5,13,21] “伦敦”=[4,7,13,25] 我尝试了以下方法:Javascript 如何定义关联数组?,javascript,associative-array,definition,Javascript,Associative Array,Definition,我想定义我所理解的关联数组(或对象),这样我就有了如下条目: “巴斯”=[1,2,5,5,13,21] “伦敦”=[4,7,13,25] 我尝试了以下方法: var xref = new Object; xref = []; obj3 = { offices: [] }; xref.push(obj3); var xref = []; // go through source arrays for (i = 0; i < offices.length; i++)
var xref = new Object;
xref = [];
obj3 = {
offices: []
};
xref.push(obj3);
var xref = [];
// go through source arrays
for (i = 0; i < offices.length; i++) {
for (j = 0; j < offices[i].rel.length; j++) {
// Check if town already exists, if not create array, then push index
if (xref[offices[i].rel[j].town] === undefined) {
xref[offices[i].rel[j].town] = [];
alert('undefined so created '+offices[i].rel[j].town);
};
xref[offices[i].rel[j].town].push(i); // Add index to town list
};
};
然后使用
xref[name].offices.push(number);
但我得到“TypeError:xref[name]未定义”。我做错了什么?像使用obj3一样使用对象:
var xref = {};
xref.obj3 = obj3;
var name = 'obj3';
xref[name].offices.push(number);
你可以使用
对象文字我意识到我真正想要的是一个二维数组,第一个维度是键(即“BATH”、“LONDON”),第二个维度是交叉引用列表(即1,2,5,5,13,21),所以我还不需要理解对象路径!其他的建议可能很有效,而且“更纯净”,但二维阵列对我的老式大脑来说更容易使用
因此,我做了以下工作:
var xref = new Object;
xref = [];
obj3 = {
offices: []
};
xref.push(obj3);
var xref = [];
// go through source arrays
for (i = 0; i < offices.length; i++) {
for (j = 0; j < offices[i].rel.length; j++) {
// Check if town already exists, if not create array, then push index
if (xref[offices[i].rel[j].town] === undefined) {
xref[offices[i].rel[j].town] = [];
alert('undefined so created '+offices[i].rel[j].town);
};
xref[offices[i].rel[j].town].push(i); // Add index to town list
};
};
var xref=[];
//检查源数组
对于(i=0;i
通过阅读其他帖子,我相信,如果将“offices[I].rel[j].town”中的任何一个设置为未定义,我都会遇到问题,但数据没有这种可能性
现在,我可以通过执行以下操作来访问交叉引用列表:
townlist = "";
for (i = 0; i < xref["BATH"].length; i++) {
townlist += offices[xref["BATH"][i]].name+' ';
};
alert(townlist);
townlist=”“;
对于(i=0;i
在您的示例中,名称是什么?此外,您应该使用对象,而不是数组。使用新对象初始化xref
,然后在下一行中指定值[]
,这有些毫无意义。我建议阅读。var xref=新对象;外部参照=[]代码>与var xref=new Object()相同;xref=新数组()代码>。不能在javascript数组中使用命名键。删除[]
声明。我的坏消息是,我在发布声明后不久就意识到了我的错误。