有没有办法为对象的属性赋值?我有一个对象的订单列表。它们每个都有一个项目,这些项目具有状态。我想到达状态并分配一个数字1-3(接受,准备,发货)并除以项目数量的长度,以查看订单的完成程度。
obj orders包含各自包含状态的项目。
orders
结构示例:
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']);
}
在这里,我设法在每个订单中控制每个项目的console.log。我不确定如何为该状态分配号码。
答案 0 :(得分:1)
您只需设置与分配任何值的方式相同(使用=
运算符):
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));
&#13;
我试图重新创建你的对象,让我知道结构是否有点偏离。
编辑:
既然您已经提供了数据结构的示例,我已经调整了代码。由于您根据不同的状态分配值,因此switch
结构在这里是有意义的,因为没有状态优先于任何其他状态(而if / else if / else结构将暗示基于顺序的首选项)。< / p>