gpt4 book ai didi

javascript - 如何搜索一长串 javascript 对象以找到 'sent: 0' 的第一个实例

转载 作者:行者123 更新时间:2023-11-29 10:43:59 26 4
gpt4 key购买 nike

这里有一个主要的循环问题。

我的数据是这样的:

var mailouts =
{ signUp: { date: '', sent: 1 },
lesson1: { sent: 1, time: 20 },
lesson2: { sent: 0, time: 20 },
lesson3: { sent: 0, time: 20 },
lesson4: { sent: 0, time: 20 },
lesson5: { sent: 0, time: 20 }
}

我需要通过 mailouts对象找到哪个 lesson接下来要发送(也就是按顺序学习类(class)时 sent: 0 的第一个实例)。我无法控制数据结构,所以我需要使用这个模型。

我能想到的唯一方法真的很丑陋且难以管理(实际上有大约 50 个“类(class)”对象,不只是 5 个,只是为了简洁起见。)。

我能想到的唯一可行的方法是这样的:

if(mailouts.lesson1.sent === 1){
if(mailouts.lesson2.sent === 1){
if(mailouts.lesson3.sent === 1){
if(mailouts.lesson4.sent === 1){
if(mailouts.lesson5.sent === 1){
// Everything has been sent
}else{
// Send lesson5
}
}else{
// Send lesson4
}
}else{
// Send lesson3
}
}else{
// Send lesson2
}
}else{
// Send lesson1
}

当然 Javascript 必须有更简单的方法来处理这个问题,但我正在画空白。有什么想法吗?

编辑:澄清一下,我只需要在每次运行此脚本时发送一个“类(class)”——只需要列表中的下一个。

最佳答案

这段代码按顺序处理类(class)——即使它们在对象中不是按顺序排列的。迭代对象属性不保证任何类型的顺序,因此您必须自己强制执行。

var mailouts =
{ signUp: { date: '', sent: 1 },
lesson1: { sent: 1, time: 20 },
lesson2: { sent: 0, time: 20 },
lesson3: { sent: 0, time: 20 },
lesson4: { sent: 0, time: 20 },
lesson5: { sent: 0, time: 20 }
}

var firstLessonWithNoSent;

for (var lessonNum = 0; lessonNum < 50; lessonNum++) {
var lesson = mailouts["lesson" + lessonNum];

if (lesson && lesson.sent === 0) {
firstLessonWithNoSent = lesson;
break;
}
}

关于javascript - 如何搜索一长串 javascript 对象以找到 'sent: 0' 的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23127074/

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