我正在尝试从名为data.shake(val1 .. val6属性)的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
}
}
答案 0 :(得分:3)
我想你可能是这个意思:
data.shake[sports[sport]]
你不能只使用一个字符串(例如'data.shake.
并希望Javascript将它变成一个变量。你实际上是这样做的:
if ('data.shake.val1' != 0) {
显然条件总是会通过,因为非空字符串("0"
除外)不等于0
您需要的语法使用square bracket member operator,它允许您使用表达式的结果访问对象的成员。
答案 1 :(得分:1)
这是我对你提供的代码所做的最好的猜测:
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]])
}
}
你可以在这里看到它:
希望它有所帮助!