gpt4 book ai didi

javascript - 在 JavaScript 中,如何确保数组至少有一个特定元素,而其他元素满足另一个条件?

转载 作者:行者123 更新时间:2023-12-01 15:52:42 24 4
gpt4 key购买 nike

给定一个包含一些状态字符串的数组,我想验证数组是否包含至少一个 sleeping 状态,然后验证其余状态是否为 oksleeping

所以一个有效的数组是 ['ok', 'sleeping', 'sleeping', 'ok'] 并且一个无效的数组会像 const states = ['ready' , '工作','onBreak',' sleep ', 'ok', ' sleep ']

到目前为止,我想出的是:


const validArray = ['ok', 'sleeping', 'sleeping', 'ok'];

const isvalid = validArray.some( x => x === 'sleeping')

if(isValid){
const canDoStuff = validArray.some( x => !['ok','sleeping'].includes(x))
if(canDoStuff){
doStuff()
}
}

理想情况下,我想在一个循环中验证这一点,而不是两个循环。

最佳答案

而不是 .some 来检查是否有一个 sleeping 项目,使用 .includes

但是,您的其他 .some 也没有实现正确的逻辑; doStuff 只会在至少有一项 匹配的情况下运行。请改用 .every,并检查每个 是否 匹配:

const validate = input => (
input.includes('sleeping') &&
input.every(x => ['ok', 'sleeping'].includes(x))
);

console.log(validate(['ok', 'sleeping', 'sleeping', 'ok']));
console.log(validate(['ready', 'working','onBreak','sleeping', 'ok', 'sleeping']));

关于javascript - 在 JavaScript 中,如何确保数组至少有一个特定元素,而其他元素满足另一个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63623535/

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