我正在使用下面的函数来比较两个 API 响应,但有些键具有相同的值,但大小写不同,而不是它报告的差异。如何避免这种区分大小写?
var difference = (object, base) => {
function changes(object, base) {
return _.transform(object, function(result, value, key) {
if(!_.isEqual(value, base[key])) {
result[key] = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;
}
});
}
return changes(object, base);
}
我希望它在出现任何案例问题时不显示差异。例如下面它不应该返回任何差异并认为它相同
"content": “Data | 8GB
or
"content": “data | 8GB
第一个 API 的响应
[
{
"price": 20,
"planCategory": "Mobile Broadband",
"externalSkuId": “MBB”,
"planHeader": {},
"expiry": "14 days",
"includedData": 8,
"includedDataType": "GB",
"inclusionOption1": "Get 1GB bonus data on every automatic recharge when you opt-in. T&C apply.",
"inclusionHighlight": "8GB",
"inclusionOptions": [
{
"channels": [
"SELF_SERVICE",
"ESTORE"
],
"type": {
"name": "DATA"
},
"content": "data | 8GB"
},
{
"channels": [
"SELF_SERVICE"
],
"type": {
"name": "OTHER"
},
"content": "expiry|14 days"
}
]
}
]
第二个 API 响应
[
{
"price": 20,
"planCategory": "Mobile Broadband",
"externalSkuId": “MBB”,
"planHeader": {},
"expiry": "13 days",
"includedData": 8,
"includedDataType": "GB",
"inclusionOption1": "Get 2GB bonus data on every automatic recharge.",
"inclusionHighlight": "8GB",
"inclusionOptions": [
{
"channels": [
"SELF_SERVICE",
"ESTORE"
],
"type": {
"name": "DATA"
},
"content": “Data | 8GB"
},
{
"channels": [
"SELF_SERVICE"
],
"type": {
"name": "OTHER"
},
"content": “Expiry|14 days"
}
]
}
]
慕盖茨4494581
慕的地6264312
慕桂英4014372
相关分类