Javascript 关联数组如何将多个字符串映射到一个数字

Javascript associative array how to map multiple strings to a number

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],我都希望 holder 具有相同的值。如果不可能,有人可以指出我正确的方向吗?任何帮助将不胜感激!

您可以使用一个对象,该对象具有一个对象的多个键。

基本上这会创建对共享对象的引用。然后您可以更改对象内部的值。

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

基本上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);