【问题标题】:Visibility variables in a for with Javascript使用 Javascript 的 for 中的可见性变量
【发布时间】:2017-06-13 01:09:13
【问题描述】:

我有这个代码:

let notificationList = angular.fromJson(response.data);
console.log(notificationList); /**FIRST PRINT**/
let numberOfMenuItems = notificationList.numberOfMenuItems;
console.log(" I have "+numberOfMenuItems+" Items"); /**SECOND PRINT**/
for(var i = 1; i <= numberOfMenuItems; i++){
    console.log(notificationList); /**THIRD PRINT**/
    let menuItemName = notificationList.('menuItemName'+i);
    console.log(menuItemName);
    let quantity = notificationList.('quantity'+i);
    console.log(quantity);
}

但是当我运行我的代码时,FIRST PRINT 说我:

{
    "numberOfMenuItems"="1",
    "menuItemName1"="string1",
    "quantity1"="2",
}

第二张纸说我:

I have 1 Items

这是正确的! 第三版说我:

notificationList [Object object]

然后 menuItemName 和数量是未定义的.. 在循环之前我没有更改 notificationList 的任何内容..但是当我进入它时,notificationList 似乎发生了变化,因为控制台说我的事情与以前不同.. 我做错了什么?我希望有一个人可以帮助我!提前致谢

【问题讨论】:

    标签: javascript angularjs json variables scope


    【解决方案1】:

    这两行是错误的:

    let menuItemName = notificationList.('menuItemName'+i); 
    let quantity = notificationList.('quantity'+i);
    

    将它们替换为:

    let menuItemName = notificationList['menuItemName'+i]; 
    let quantity = notificationList['quantity'+i];
    

    你的notificationList 是什么样子的?

    【讨论】:

    • 谢谢它的工作!但为什么还要这样做呢??:let numberOfMenuItems = notificationList.numberOfMenuItems;
    • 我不确定我是否得到了这个问题,但是在您错误的数量和 itemName 分配中,您有语法错误。在 js 中要访问对象的属性,您需要使用 object[propertyName] 而不是 object.(propertyName)。
    猜你喜欢
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 2015-07-06
    • 2013-05-11
    • 2016-03-31
    相关资源
    最近更新 更多