我正在将一个数组等于另一个数组
orders = [
{
'id': PROCESSING,
'displayName': 'Processing'
},
{
'id': SHIPPED,
'displayName': 'Shipped'
}
];
cloneOrders = [];
setOrders() {
this.orders.forEach((order: any) => {
this.cloneOrders = order;
});
}
但是当我尝试在另一个函数中获取'cloneOrders'的值时,它将返回一个空数组
getOrders(status, minutes) {
this.cloneOrders .forEach((order: any) => {
console.log(order);
});
}
两个功能都在同一组件中。请帮我解决这个感谢。
答案 0 :(得分:4)
尝试这样
setOrders() {
this.cloneOrders= [...this.orders];
}
编码愉快!!
答案 1 :(得分:1)
您需要.push才能将项目添加到数组中,
this.orders.forEach((order: any) => {
this.cloneOrders.push(order);
});
使用扩展算子使用ES6的更好方法,
setOrders() {
this.cloneOrders= [...this.orders];
}
答案 2 :(得分:0)
您每次将新对象从orders
分配到cloneOrders
时,都需要将orders
推入cloneOrders
setOrders() {
this.orders.forEach((order: any) => {
this.cloneOrders.push(order);
});
}
答案 3 :(得分:0)
如果要进行深克隆-
let cloned = this.cloneOrders.map(x => Object.assign({}, x));
答案 4 :(得分:0)
我们可以使用扩展算子使用ES6
orders = [
{'id': PROCESSING,'displayName': 'Processing'},
{'id': SHIPPED,'displayName': 'Shipped'}
];
cloneOrders = [];
setOrders(){
this.cloneOrders= [...this.orders];
}