首页 > 解决方案 > 传递键值时返回未定义的Javascript函数

问题描述

Console.log 返回:

key1
未定义

我希望看到:

key1
[“第一”,“第二”]


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());

标签: javascriptobjectkeyparameter-passingundefined

解决方案


您必须使用方括号表示法来访问动态属性。

所以它应该是: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]);


推荐阅读