第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過將布爾值轉換為數組來減少 JSON 大小是個好主意嗎?

通過將布爾值轉換為數組來減少 JSON 大小是個好主意嗎?

波斯汪 2023-04-27 16:30:53
初學者在這里。我從我的 API 調用中得到以下信息:"formatting": {  "isBold": false,  "isItalic": false,  "isUnderlined": false,  "isFirstWordOfSentence": false  ... and so on.},現在發(fā)送這么多數據似乎相當昂貴。我們可能會遇到這樣一種情況,即 10 項中只有一項實際設置為 true,但我們仍然需要發(fā)送所有 10 項。我想知道我是否可以用不同的方式構建它,這樣可以節(jié)省發(fā)送這么多數據,但仍然保留相同數量的信息。我正在考慮像這樣將數據存儲在數組中:"formatting": ['isBold', 'isFirstWordofSentence']然后在前端,而不是檢查我是否isBold會true做一個formatting.indexOf('isBold') !== -1. 我知道缺點是現在代碼不再那么清晰了,但我想知道它是否可行?它肯定會減少我的 JSON 的大小。同時我不確定indexOf前端的調用最終是否會比簡單的布爾檢查更昂貴?在那種情況下,我總是可以在獲取之后進行規(guī)范化。任何建議或意見將不勝感激。請記住我是初學者。
查看完整描述

4 回答

?
慕哥6287543

TA貢獻1831條經驗 獲得超10個贊

您可能會考慮避免 API 響應中的錯誤值


"formatting": {

  "isUnderlined": true,

  "isItalic": false

}


"formatting": {

  "isUnderlined": true

}

兩種情況下的條件搜索返回相同的結果


如果您最終將響應轉換為數組, formatting.indexOf('isUnderlined')并且formatting.includes('isUnderlined')如果存在于數組中則返回 true


查看完整回答
反對 回復 2023-04-27
?
UYOU

TA貢獻1878條經驗 獲得超4個贊

與數據發(fā)送/解析的任何問題一樣,這里有很多事情需要考慮。

我傾向于不進行您在這里考慮的那種優(yōu)化,除非您正在處理大量數據 [同時處理數百萬/數十億行]。

您也不需要!== -1.indexOf(). 只需檢查真實性即可。另一位用戶還提到 JS 數組有.includes(). 話雖這么說,這將對列表進行順序掃描,并且字典查找速度更快。這肯定會減慢處理數據的速度,而不是加快發(fā)送數據的速度。


查看完整回答
反對 回復 2023-04-27
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

您可以使用Array#includeswhich 返回布爾結果。

formatting.includes('isBold')

一種更短的方法是只存儲true值。這允許直接使用該屬性而無需迭代數組。

formatting:?{
????isBold:?true
????}

訪問與具有 的屬性相同false,但訪問返回trueundefined。在后一種情況下,您可以根據需要轉換為布爾值。

否則,通過在語句或其他依賴檢查中使用truthy?/?falsy值,利用 Javascript 自動強制轉換為布爾值的優(yōu)勢if,例如條件(三元)運算符?:


查看完整回答
反對 回復 2023-04-27
?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

前言:在大多數情況下,JSON 大小與成本無關。如果您希望減少延遲,請查看 websockets。


答案:為了減小尺寸,您可以使用一些假設:如果未找到該值,則假設它是假的。


發(fā)送一個 JSON


{

  formatting: ['isBold', 'isItalic']

}

相當于


{

  formatting: {

    isBold: true,

    isItalic: true,

    isUnderlined: false,

    isFirstWordOfSentence: false

  }

}

然后,您可以使用檢查值Array.prototype.includes


const isBoldTrue = data.formatting.includes('isBold')


查看完整回答
反對 回復 2023-04-27
  • 4 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號