【发布时间】:2021-09-23 01:00:13
【问题描述】:
我正在运行此代码并调用 ajax 请求 20 次。如果数组中还没有相同的记录,我想将 ajax 响应添加到数组中。我正在这样做,但它也在添加重复数据。我在这方面做错了什么? 我也尝试使用 indexOf 但这似乎也不起作用
有什么方法可以在每次循环运行时跳过具有相同 id 的对象?
例如,如果我收到 CID 28 的 api 响应,如果 CID 28 再次出现,我会跳过该对象添加到数组中。
for(let i = 0; i< 20; i++){
$.ajax({
url: "/bin/adp/rest_api_response.megtile.json",
method: "POST",
"data": { "session": sessionID, "WIN_NBR": win, "local_time": localT.toString(), "network": "on" },
beforeSend: function (xhr) {
},
success: function (data) {
urls = data.btn_link;
var tmp_thumbnail = "url('" + data.image + "')"
thumbnails = tmp_thumbnail;
descriptions = data.banner_text;
btn_txt = data.btn_text;
titles = data.banner_title;
cid = data.CID;
console.log("datttt",arr)
console.log("dddd",data)
if (arr.includes(data) === false) {
arr.push(data);
}
}
});
}
API Response
{
"CID": "CID28",
"btn_link": "https://one.xyz.com",
"btn_text": "Visit page",
"campaign_title": "RFL Talkspace",
"banner_text": "Talk to a licensed, professional therapist. ",
"banner_title": "Talking about it can help.",
"image": "/content/dam/us-wire-wm1/images/me@/campaigns/campaigns-2021/may/talkspace.png",
"link": "",
"request_ID": "fa9a925b-f882-410-558-761e179eb227"
}
Duplicate API response
{
"CID": "CID28",
"btn_link": "https://one.xyz.com",
"btn_text": "Visit page",
"campaign_title": "RFL Talkspace",
"banner_text": "Talk to a licensed, professional therapist. ",
"banner_title": "Talking about it can help.",
"image": "/content/dam/us-wire-wm1/images/me@/campaigns/campaigns-2021/may/talkspace.png",
"link": "",
"request_ID": "fa9a925b-f882-410-558-761e179eb227"
}
API another response
{
"CID": "CID3",
"btn_link": "https://get.com/automatic",
"btn_text": "Learn more",
"campaign_title": "Even App",
"banner_text": "",
"banner_title": "Get automatic access to your earned wages every week",
"image": "/content/uswire/en_us/me/campaigns/even-app/jcr:content/par/hero_v2_copy_cpy.g.jpeg",
"link": "",
"request_ID": "ae5e5396-0317-4ec8-b7b1-9f0deef5cd"
}
【问题讨论】:
-
您是否尝试过将
data转换为字符串,然后将其推送到数组中?将传入的data对象转换成字符串,然后使用arr.includes函数检查传入的data是否存在于arr中。 -
@decpk 不是一样的吗?
-
@TheKNVB 是的,我试过了,它也有用
标签: javascript html jquery arrays ajax