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

时间:2017-01-17 21:13:01

标签: javascript arrays associative

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

2 个答案:

答案 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);