嘗試localJSON
基于. remoteJSON
_ localJSONFiltered
_ remoteJSON
然后最后比較值。
腳本
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
遠程 JSON 資料。和本地JSON
const remoteJSON = {"address": "LAN",
"city": "LAN-CITY",
"code": "A1"
};
const localJSON = { "city": "LAN-CITY",
"code": "A1",
"address": "LAN",
"extraKey":"I am not required..please remove me while comparing"
}
console.log( _.isEqual(a, b) ); // false
期望從 localJSON 中洗掉該extraKey
屬性,即 localJSON 只需要具有其中的那些屬性,remoteJSON
然后比較這些值。
const remoteJSON = {"address": "LAN",
"city": "LAN-CITY",
"code": "A1"
};
const localJSONRemoving = _.omit(localJSON, ['extraKey']));
const localJSONAfterRemoving = { "city": "LAN-CITY",
"code": "A1",
"address": "LAN"
}
console.log( _.isEqual(a, b) ); // true
我的 localJSON 有 30 多個屬性。所以硬編碼所有屬性看起來很糟糕。
uj5u.com熱心網友回復:
像這樣,繼續使用 lodash:
const _ = require("lodash");
const a = {
address: "LAN",
city: "LAN-CITY",
code: "A1"
};
const b = {
city: "LAN-CITY",
code: "A1",
address: "LAN",
extraKey: "I am not required..please remove me while comparing",
};
// Goal: test if a and b are the same except that we ignore extra keys in b
const extraKeys = _.filter(_.keys(b), (x) => !_.keys(a).includes(x));
console.log(_.isEqual(a, _.omit(b, extraKeys)));
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527585.html
上一篇:帶有模板文字型別的打字稿“決議錯誤:預期型別”的ESLint
下一篇:表單陣列不保存輸入