gpt4 book ai didi

javascript - 将对象从一个数组移动到另一个数组

转载 作者:太空狗 更新时间:2023-10-29 18:13:09 25 4
gpt4 key购买 nike

我有一个对象,其中一个属性是一个对象数组,这个想法是如果一个条件为真,则将对象从该数组移动到没有新的对象。

public $onInit(): void {
this.getTicket();
}

public ticket: any; // Object with the array
public comments: any = []; // New array to move the elements
public getTicket(): void {
this.ticketService
.getTicketComplete(this.$stateParams.ticketID)
.then((response: any) => {
this.ticket = response;
this.stringToDate(this.ticket);
this.ticket.messages.forEach((elem, index) => {
if (elem.type === "comment") {
this.ticket.messages.splice(index, 1);
this.comments.push(elem);
}
});
console.log(this.ticket);
});
}

我遇到的问题是下一个:该数组必须包含对象、消息和评论的类型,如果该数组有 2 条消息和 3 条评论,它应该将 3 条评论推送到新数组并留下 2 条消息,但仅移动 2 条评论。

任何想法。感谢您的帮助。

最佳答案

这就是的方式:

var array1 = [1, 2, 3, 4, 5];
var array2 = [];

array1.forEach(function(elem, index) {
array1.splice(index, 1);
array2.push(elem);
});

console.log(array1); //[2, 4]
console.log(array2); //[1, 3, 5]

这是如何完成的示例:

var array1 = [1, 2, 3, 4, 5];
var array2 = [];

for(var i = 0; i < array1.length; i++) {
array2.push(array1[i]);
array1.splice(i, 1);
i--; //decrement i IF we remove an item
}

console.log(array1); //[]
console.log(array2); //[1, 2, 3, 4, 5]

您的特定用例:

let messages = this.ticket.messages;
for(let i = 0; i < messages.length; i++) {
let message = messages[i];
if (message.type === "comment") {
this.comments.push(message);
messages.splice(i, 1);
i--;
}
}

关于javascript - 将对象从一个数组移动到另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45919837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com