javascript - 为对象属性赋值并除以长度

标签 javascript arrays object

有没有办法为对象的属性赋值?我有一个订单列表,它们是对象。他们每个人都有一个项目,这些项目是其中具有状态的数组。我想获取状态并指定一个数字 1-3(已接受、已准备好、已发货),然后除以商品数量的长度以查看订单完成了多少。

obj 订单具有每个包含状态的项目。

订单结构示例:

Array [0: Object { item: "shirt", status: "draft" }] Array [0: Object { item: "shirt, status: "failed" } 1: Object { item: "shirt" , status: "draft" }]

我试过的代码:

 for (var a = 0; a < list[i].orders.length; a++) {
     for (var b = 0; b < list[i].orders[b]['status']; b++);
         console.log(list[i].orders[b]['status']);           
 }

在这里,我设法控制台记录了每个订单中的每个项目状态。我不确定如何为该状态分配一个数字。

最佳答案

您只需像分配任何值一样设置它(使用 = 运算符):

var list = [
    {
        orders: [
            {
                item: "shirt",
                status: "draft"
            }
        ]
    },
    {
        orders: [
            {
                item: "shirt",
                status: "failed"
            },
            {
                item: "shirt",
                status: "draft"
            }
        ]
    }
];
list.forEach(function(item) {
    item.orders.forEach(function(order) {
        switch (order.status) {
            case "draft":
                order.value = 1;
                break;
            case "failed":
                order.value = 2;
                break;
            default:
                return;
        }
    });
});
console.log(JSON.stringify(list));

我试图重新创建您的对象,如果结构略有偏差,请告诉我。

编辑: 现在您已经提供了数据结构的示例,我已经调整了代码。由于您是根据不同的状态分配一个值,因此 switch 结构在这里很有意义,因为没有任何状态比任何其他状态具有优先权(而 if/else if/else 结构将暗示基于顺序的优先权).

关于javascript - 为对象属性赋值并除以长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49682217/

相关文章:

javascript - 动态显示依赖项

javascript - 使用 ng-class 的 AngularJS 切换类

java - 将对象转换为数组 - IllegalArgumentException - 参数不是数组

javascript - 过滤对象并将其添加到数组中而不重复

java - 实例化子类时,是否只创建一个对象?

c++ - 在 C++ 中,如何从一个文件动态创建一个类的多个对象?

javascript - 切换到另一个选项卡时,animationend 不起作用

javascript - PhoneGap应用程序: FB Share via API without FB Popup

c - 从文件中读取不同长度的行

C++ 程序在创建 2000 个对象后崩溃