如何从javascript中的关联数组'动态'获取值?

时间:2010-12-03 01:54:15

标签: javascript associative-array

我试图从存储在字符串变量proyNombre上的键中获取值,但每当我通过常用方法“myAssociativeArray.MyKey”调用它时,它将变量'proyNombre'作为键,而不是获取它价值并将其作为关键字传递。

proyectos.each(function(index){
    var proyNombre = this.value;

    if(!(proyNombre in myArray)){ // whenever the variable is undefined, define it
        myArray[proyNombre] = horas[index].value-0 + minutos[index].value/60;
    }
    else{
        console.log(myArray.proyNombre); //This doesnt work, it tries to give me the value for the key 'proyNombre' instead of looking for the proyNombre variable
        console.log(myArray.this.value); //doesnt work either
    }

});

4 个答案:

答案 0 :(得分:2)

尝试:

console.log(myArray[proyNombre]);

myArray实际上是javascript中的对象。您可以使用object.propertyNameobject['propertyName']访问对象属性。如果您的变量proyNombre包含属性的名称(它具有),您可以使用第二种形式,就像我上面所做的那样。 object.proyNombre无效 - proyNombre是一个变量。你做不到例如:

var myObject = {};
myObject.test = 'test string';

var s = 'test';
console.log(myObject.s); // wrong!!

但你可以这样做:

console.log(myObject.test);
console.log(myObject['test']);
console.log(myObject[s]);

答案 1 :(得分:1)

只需使用myArray[proyNombre]访问该值。

答案 2 :(得分:1)

您需要使用与设置值相同的语法:

console.log(myArray[proyNombre]);

答案 3 :(得分:1)

你在作业中正确行事:myArray [proyNombre]。您可以使用相同的方法来检索变量。

如果你改变:

console.log(myArray.proyNombre);
console.log(myArray.this.value);

console.log(myArray[proyNombre]);
console.log(myArray[this.value]);

你应该得到两次相同的值(由变量proyNombre表示的键的值)。

Javascript没有关联数组,但Javascript中的对象在访问其成员时可以像关联数组一样对待。