如何根据 Javascript 中变量的内容提取属性?

发布于 2025-01-01 06:45:52 字数 426 浏览 0 评论 0原文

我试图从名为 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 
        }
     }

I'm trying to read out the values from a jStorage JSON object called data.shake (val1 .. val6 properties), but cant figure the right syntax out so that it runs correctly. for example the console log output doesnt show the value stored in it.

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 
        }
     }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酷炫老祖宗 2025-01-08 06:45:52

我想你的意思可能是这样的:

data.shake[sports[sport]]

你不能只使用一个字符串(例如'data.shake.)并期望Javascript将其转换为你的变量。你正在有效地这样做:

if ('data.shake.val1' != 0) {

显然条件总是会通过,因为非空字符串("0" 除外)不等于 0

您需要的语法使用 方括号成员运算符,它允许您使用以下结果访问对象的成员一个表达。

I think you probably mean this:

data.shake[sports[sport]]

You can't just use a string (e.g. 'data.shake. and expect Javascript to turn this into a variable for you. You're effectively doing this:

if ('data.shake.val1' != 0) {

Obviously that condition will always pass, because non-empty strings (except "0") are not equal to 0

The syntax you need uses the square bracket member operator, which allows you to access an object's members using the result of an expression.

め可乐爱微笑 2025-01-08 06:45:52

这是我对您尝试使用您提供的代码执行的操作的最佳猜测:

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]])
    }
 }

您可以在此处查看它的实际操作:

http: //jsfiddle.net/LseUp/

希望有帮助!

This is my best guess at what you are trying to do with the code you provided:

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]])
    }
 }

You can see it in action here:

http://jsfiddle.net/LseUp/

Hope it helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文