gpt4 book ai didi

javascript - 如何让相同模式的代码更简洁

转载 作者:行者123 更新时间:2023-11-30 13:56:00 26 4
gpt4 key购买 nike

我希望那些代码可以更简洁,但我不知道该怎么做。

函数2~4有相同的模式,希望能减少代码,

而且如果我有太多的“或”和“和”,有没有什么方法可以使它更干净?



const statusFilter2 = (data1, data2) => {
if (data1 === 'error' || data2 === 'error') {
return 'error'
} else if (data1 === 'C' || C === 'C') {
return 'A'
} else if (data1 === 'B' || data2 === 'B') {
return 'B'
} else {
return 'C'
}
}

const statusFilter3 = (data1, data2, data3) => {

if (data1 === 'error' || data2 === 'error' || data3 === 'error') {
return 'error'
} else if (data1 === 'C' || data2 === 'C' || data3 === 'C') {
return 'C'
} else if (data1 === 'B' || data2 === 'B' || data3 === 'B') {
return 'B'
} else {
return 'A'
}
}


const statusFilter4 = (data1, data2, data3, data4) => {
if (data1 === 'error' || data2 === 'error' || data3 === 'error' || data4 === 'error') {
return 'error'
} else if (data1 === 'C' || data2 === 'C' || data3 === 'C' || data4 === 'C') {
return 'C'
} else if (data1 === 'B' || data2 === 'B' || data3 === 'B' || data4 === 'B') {
return 'B'
} else {
return 'A'
}
}


最佳答案

您可以只使用一个函数,而不是三个独立的函数。

代码步骤解释

  • 第 1 步:使用 spread 传递第 N 个参数语法(在此代码中为 ...arg )并且此 arg 是一个数组。
  • 第 2 步: 创建 all_messages 的对象并尝试找到 arg 的一个键来自 all_messages使用 find()
  • 第 3 步:如果从消息列表中找到,则从 all_messages 返回该键值.
  • Step4:设置默认值A如果all_message不包括 arg 的任何值.

const status = (...arg) => {
const all_messages = {error: 'error', C: 'C', B: 'B'};
const message = arg.find(key => !!all_messages[key])
return message ? message : 'A'
}

console.log(status('F', 'F'))
console.log(status('C', 'A'))
console.log(status('C', 'C', 'C', 'C'))
console.log(status('error', 'error', 'error', 'error'))
console.log(status('B', 'B', 'B'))

关于javascript - 如何让相同模式的代码更简洁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57296162/

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