Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于Javascript中变量的内容提取属性?_Javascript - Fatal编程技术网

如何基于Javascript中变量的内容提取属性?

如何基于Javascript中变量的内容提取属性?,javascript,Javascript,我试图从名为data.shake(val1..val6 properties)的jStorage JSON对象中读取值,但无法找出正确的语法,以便它正确运行。例如,控制台日志输出不显示其中存储的值 var sports = {1:'val1',2:'val2',3:'val3', 4:'val4',5:'val5',6:'val6'}; for (sport in sports) { if ('data.shake.'+sports[spor

我试图从名为data.shake(val1..val6 properties)的jStorage JSON对象中读取值,但无法找出正确的语法,以便它正确运行。例如,控制台日志输出不显示其中存储的值

var sports = {1:'val1',2:'val2',3:'val3',
              4:'val4',5:'val5',6:'val6'};

    for (sport in sports) {
        if ('data.shake.'+sports[sport] != 0) { 
             console.log(sports[sport]+':'+'data.shake.'+sports[sport])
             //output: val1:data.shake.val1 
        }
     }

我想你的意思可能是:

data.shake[sports[sport]]
您不能仅仅使用字符串(例如,
“data.shake.
”)并期望Javascript将其转换为变量。您实际上是在这样做:

if ('data.shake.val1' != 0) {
显然,该条件将始终通过,因为非空字符串(除
“0”
)不等于
0


您需要的语法使用,它允许您使用表达式的结果访问对象的成员。

我想您的意思可能是:

data.shake[sports[sport]]
您不能仅仅使用字符串(例如,
“data.shake.
”)并期望Javascript将其转换为变量。您实际上是在这样做:

if ('data.shake.val1' != 0) {
显然,该条件将始终通过,因为非空字符串(除
“0”
)不等于
0


您需要的语法使用,它允许您使用表达式的结果访问对象的成员。

这是我对您所提供代码的最佳猜测:

var sports = {1:'val1',2:'val2',3:'val3',
              4:'val4',5:'val5',6:'val6'};
var data = {
    shake: {val1: 'some data', val2: 'some other data'}
};

for (sport in sports) {
    if (data.shake[sports[sport]] !== undefined) {
         console.log(sports[sport]+':'+ data.shake[sports[sport]])
    }
 }
你可以在这里看到它的作用:


希望有帮助!

这是我对您所提供代码的最佳猜测:

var sports = {1:'val1',2:'val2',3:'val3',
              4:'val4',5:'val5',6:'val6'};
var data = {
    shake: {val1: 'some data', val2: 'some other data'}
};

for (sport in sports) {
    if (data.shake[sports[sport]] !== undefined) {
         console.log(sports[sport]+':'+ data.shake[sports[sport]])
    }
 }
你可以在这里看到它的作用:


希望有帮助!

我感觉有人会告诉你使用
eval
。不要这样做。我感觉有人会告诉你使用
eval
。不要这样做。