我的腳本中的回應物件需要有一個預期的格式:
let expectedObjectFormat = {
data: 'someValue',
errors: 'someValue',
abort: 'someValue',
retryData: 'someValue'
}
我需要一個驗證腳本來檢查 runTimeObject 是否具有預期格式的欄位。
- 如果缺少任何欄位,則應報告。
- 如果有任何額外的欄位應該報告。
let runtimeObjectFormat = {
data: 'someDifferentValue',
errors: 'someDifferentValue',
abort: 'someDifferentValue',
}
這應該會丟失“retryData”欄位
let runtimeObjectFormat = {
data: 'someDifferentValue',
errors: 'someDifferentValue',
abort: 'someDifferentValue',
retryData: 'someDifferentValue',
extraField: 'someDifferentValue
}
這應該給'extraField'欄位是意外的
有人可以提供相同的Javascript代碼嗎?
uj5u.com熱心網友回復:
我為這個用例寫了一個函式
function checkObjectFormat(runtimeObj, expectedObj){
let runtimeKeys = Object.keys(runtimeObj);
let expKeys = Object.keys(expectedObj);
let extraFields = runtimeKeys.filter(x => !expKeys.includes(x));
let missingFields = expKeys.filter(x => !runtimeKeys.includes(x));
return {
extraFields,
missingFields
}
}
用法:
checkObjectFormat(runtimeObjectFormat, expectedObjectFormat)
它將回傳一個物件,該物件包含陣列extra和missing欄位
輸出,用于具有額外鍵的物件:
{
"extraFields": [
"extraField"
],
"missingFields": []
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504622.html
標籤:javascript 节点.js 循环 验证
