rules。 MapDiff
MapDiff 類型。
MapDiff 類型代表針對 rules.Map 物件。
沒有 MapDiff 常值可用於建立差異比較。MapDiff 物件 rules.Map#diff 函式的呼叫會傳回值。
如要呼叫下方描述的 MapDiff 函式,請使用 rules.Map#diff。所有 MapDiff 函式都會傳回 rules.Set 物件清單。
// Compare two Map objects and return whether the key "a" has been // affected; that is, key "a" was added or removed, or its value was updated. request.resource.data.diff(resource.data).affectedKeys().hasOnly(["a"]);
方法
addKeys
addKeys() 會傳回 rules.Set
傳回 rules.Set,其中列出對應呼叫的所有鍵
diff()
包含傳遞至 diff()
的地圖
而不是
範例
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
受影響的金鑰
challengeKeys() 傳回 rules.Set
傳回 rules.Set,其中列出已加入的鍵、
從地圖呼叫 diff()
中移除或修改 (相較於
傳遞至 diff()
的地圖這個函式會傳回
相當於 MapDiff.addedKeys()
的合併結果
MapDiff.removedKeys()
和MapDiff.changedKeys()
。
({"a":0, "c":0, "u":0}).diff({"r":0, "c":1, "u": 0}).affectedKeys() == ["a", "r", "c"].toSet()
已變更金鑰
changeKeys() 會傳回 rules.Set
傳回 rules.Set,其中包含同時出現在地圖中的所有鍵
呼叫 diff()
和傳遞至 diff()
的地圖,但是
不相等的值
範例
{"a":0}.diff({"a":1, "b":4}).changedKeys() == ["a"].toSet()
已移除的鍵
removeKeys() 會傳回 rules.Set
傳回 rules.Set,其中列出對應呼叫的所有鍵
diff()
不包含與傳遞給至之地圖
diff()
。
範例
{}.diff({"a":1}).removedKeys() == ["a"].toSet()
不變鍵
傳回 rules.Set
傳回 rules.Set,其中包含同時出現在地圖中的所有鍵
呼叫 diff()
和傳遞至 diff()
的地圖,以及
其值相等
範例
{"a": 0}.diff({"a":0}).unchangedKeys() == ["a"].toSet()