如何基于Javascript中变量的内容提取属性?
我试图从名为data.shake(val1..val6 properties)的jStorage JSON对象中读取值,但无法找出正确的语法,以便它正确运行。例如,控制台日志输出不显示其中存储的值如何基于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
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
。不要这样做。