[英]How to avoid repetition of code in javascript?
我正在編寫一個節點程序,在其中輸入一個 id(必需)和一個屬性(可選),並且 function 遍歷對象數組,直到找到具有相同輸入 id 和/或屬性的 object。
到目前為止,我有這個並且它有效:
if(id && query === undefined){
let searchById = employeesObj.filter(employee => {
return employee.id == id
})
if(Object.entries(searchById).length === 0){
console.log('This employee doesn\'t exist')
return
}
console.log('Employee information: \n', searchById)
}
if(query){
let searchById = employeesObj.filter(employee => {
return employee.id == id
})
if(Object.entries(searchById).length === 0){
console.log('This employee doesn\'t exist')
return}
let obj = searchById[0]
if(obj.hasOwnProperty(query)){
console.log(obj[query])
}else{
console.log('input query doesn\'t exist')
}
}
})
可以看到,這部分功能是一樣的:
let searchById = employeesObj.filter(employee => {
return employee.id == id
})
if(Object.entries(searchById).length === 0){
console.log('This employee doesn\'t exist')
return
}
一種是在您輸入 id 時進行搜索,另一種是在您輸入查詢(屬性)時進行搜索。
如何避免代碼中的重復?
通常,如果您必須多次運行代碼,則將其放入 function 中。 但是,修復代碼重復的更好方法是首先避免重復該事情。 您可以通過在開始時僅執行一次 ID 搜索來執行此操作,並在檢查查詢時保留searchById
結果:
let searchById = employeesObj.filter(employee => {
return employee.id == id
})
if(Object.entries(searchById).length === 0){
console.log('This employee doesn\'t exist')
return
}
if(query){
let obj = searchById[0]
if(obj.hasOwnProperty(query)){
console.log(obj[query])
} else {
console.log('input query doesn\'t exist')
}
} else {
console.log('Employee information: \n', searchById)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.