Функция Javascript, возвращающая неопределенное значение при передаче значения ключа - PullRequest
0 голосов
/ 18 мая 2018

Console.log возвращает:

key1
undefined

Я ожидаю увидеть:

key1
["first", "second"]


var testfunc = function(a) {
    var matrix = {
        key1: ["first", "second"],
        key2: ["third", "fourth"]
    };

    var b = matrix.a;

    console.log(a);

    console.log(b);
}

var otherfunc = function() {
    return "key1";
}

testfunc(otherfunc());

1 Ответ

0 голосов
/ 18 мая 2018

Для доступа к динамическому свойству необходимо использовать скобочную нотацию .

Так должно быть: matrix[a] вместо matrix.a, которое не определено.

var testfunc = function(a) {
    var matrix = {
        key1: ["first", "second"],
        key2: ["third", "fourth"]
    };

    var b = matrix[a];

    console.log(a);

    console.log(b);
}

var otherfunc = function() {
    return "key1";
}

testfunc(otherfunc());

const obj = {
  x: 'x',
  y: 'y'
};

const x = 'y';
console.log(obj.x);
console.log(obj[x]);
...