我有一个棘手的要求,我无法解决。
我有一个按钮,如果我点击该按钮,我就会从REST网络服务获取数据......
static
如果我是第一次获得上述数据。我要显示一个部分。再次,如果我点击相同的按钮,如果我在服务中获得相同的数据,那么我必须隐藏该部分。但我无法第二次检查相同的数据。 我试图通过将数据存储在如下变量中来解决这个问题。
{
"results": [{
"Reqdate": "\/Date(1520899200000)\/",
"Tooltip": "13.03.2018 Blood Donation Approved ",
"Legendid": "GROUP_LEVEL1"
},{
"Reqdate": "\/Date(1523836800000)\/",
"Tooltip": "16.04.2018 Privilege Leave Sent ",
"Legendid": "BADVALUE_LIGHT",
},{
"Reqdate": "\/Date(1524528000000)\/",
"Tooltip": "24.04.2018 Privilege Leave Sent ",
"Legendid": "BADVALUE_LIGHT",
}]
}
现在我无法检查第二次是否有相同的数据。实际上我也无法生成示例代码。我很抱歉
有人可以帮我解决这个问题。
答案 0 :(得分:1)
我不完全理解您的问题,但我认为您可以将数据存储为JSON,并检查第二次以后是否返回相同的数据?
代码示例
// Variable declaration
var firstTimeResults = null;
// When data return
var dataJson = JSON.stringify(data.results);
if (firstTimeResults === null) {
firstTimeResults = dataJson;
}
else {
// check to see if the data is the same as the firstTimeResults
var isSame = firstTimeResults === dataJson;
if (isSame) {
// Same
} else {
// Not the same
}
}
答案 1 :(得分:0)
您只需尝试使用 Lodash 库。 它使JavaScript更容易使用数组,数字,对象,字符串等。
var firstResult = null;
var secondResult;
var showSection;
function getData() {
// here goes your API request to get the data
};
function onButtonClick() {
this.getData().then(function(value) {
if !(firstResult) {
firstResult = value;
showSection = true;
return;
}
secondResult = value;
if (_.isEqual(firstResult, secondResult)) {
showSection = false;
}
})
};
希望这会对你有所帮助!