有没有办法为对象的属性赋值?我有一个订单列表,它们是对象。他们每个人都有一个项目,这些项目是其中具有状态的数组。我想获取状态并指定一个数字 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/