javascript - 动态键名

标签 javascript

<分区>

我试图通过在元素的初始即公共(public)前缀中传递一个整数,从循环中动态生成对象元素。

像这样:

           if(inventory.inventory_obj.length){
                obj.inventory_length = inventory.inventory_obj.length;
                for(var x=0; x < inventory.inventory_obj.length; x++){

                    obj.warehouse_+x = inventory.inventory_obj[x].warehouse;
                    obj.name_+x = inventory.inventory_obj[x].name;
                    obj.space_+x = inventory.inventory_obj[x].space;
                    obj.cost_+x = inventory.inventory_obj[x].cost;
                    obj.quantity_+x = inventory.inventory_obj[x].quantity;
                    obj.level_+x = inventory.inventory_obj[x].level;
                    obj.status_+x = inventory.inventory_obj[x].status;
                    obj.deleted_+x = inventory.inventory_obj[x].deleted;
                }
            }

执行上述操作后,我得到了 "Invalid left-hand side in assignment" 错误

我已经通过 console.log(inventory.inventory_obj) 测试了 inventory.inventory_obj 并验证它具有所需的值。

我做过的其他尝试包括

                    obj.warehouse_+""+x = inventory.inventory_obj[x].warehouse;
                    obj.warehouse+"_"+x = inventory.inventory_obj[x].warehouse;
                    obj.warehouse_+x.toString() = inventory.inventory_obj[x].warehouse;
                    obj.warehouse.concat("_"+x+"") = inventory.inventory_obj[x].warehouse;
                    //Eliminating the underscore
                    obj.warehouse+x = inventory.inventory_obj[x].warehouse;

以上都失败了。

请有人帮助我理解我做错了什么。

最佳答案

要动态创建属性名称,请使用方括号表示法:

obj['warehouse_' + x] = nventory.inventory_obj[x].warehouse;

关于javascript - 动态键名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17716216/

相关文章:

javascript - 什么 (function($) {})(jQuery);意思是?

javascript - 如何让我的下一个按钮提交表单?

javascript - 如何将动态数据提供给静态jquery函数?

javascript - 向上滚动时,基于滚动位置的 javascript 动画不会恢复到其原始状态

javascript - 为什么 javascript/ecmascript 不使用严格的相等运算符?

java - 在java中转义javascript字符串

java - 在tomcat中的java方法中访问JavaScript文件

javascript - 如果一个参数相同,则将 2 个数组组合成二维数组

javascript - React Native 循环这个

javascript - AngularJS - 当值为 true 时设置选中复选框