这里的Javascript新手。我目前有一个关联数组,格式如下:
StringA: number,
StringB: number
是否可以将多个字符串映射到相同的数字?像这样的东西(一些数字可能有不同数量的字符串映射到它们):
StringA, StringB, StringC: number,
StringD, StringE: number,
StringF, StringG, StringH, StringI: number
基本上,无论我写var holder = arr[StringA]
还是var holder = arr[StringC]
,我都希望持有人具有相同的价值。如果不可能,有人能指出我正确的方向吗?任何帮助将不胜感激!
答案 0 :(得分:0)
您可以使用具有该对象值的对象,其中一个对象具有多个键。
基本上,这会创建对共享对象的引用。然后你可以改变对象里面的值。
var temp = { value: 42 },
object = {
a: temp,
b: temp,
c: temp
};
console.log(object.a.value); // 42
object.b.value = 7;
console.log(object.c.value); // 7
答案 1 :(得分:0)
基本上Js没有关联数组,它们是对象。读这个: http://www.w3schools.com/js/js_arrays.asp
你需要指向这个,但JS没有指针。但是,这是一种使用指针的方法:使用对象。
var assoc = [];
assoc["stringA"] = { value: 1};
assoc["stringB"] = assoc["stringA"];
assoc["stringC"] = assoc["stringA"];
assoc["stringD"] = { value: 10};
assoc["stringE"] = assoc["stringD"];
console.log("A: "+assoc["stringA"].value);
console.log("B: "+assoc["stringB"].value);
console.log("C: "+assoc["stringC"].value);
console.log("D: "+assoc["stringD"].value);
console.log("E: "+assoc["stringE"].value);
console.log("======== modify value ======");
console.log("\nModify A to 2")
assoc["stringA"].value = 2;
console.log("B: "+assoc["stringB"].value);
console.log("C: "+assoc["stringB"].value);
console.log("\nModify E to 20")
assoc["stringE"].value = 20;
console.log("D: "+assoc["stringD"].value);
console.log("E: "+assoc["stringE"].value);