如何在JavaScript AJAX调用中收集仅包含指定键的数组?
我到处找了,找不到答案 能否指定一个AJAX调用,使其仅返回与提供的键相等的数组 我制作了一个简单的随机化器,通常在搜索时效果很好,但是当你过滤搜索时,返回结果可能需要一分钟的时间,因为我已经将它设置为通过与变量“query”相等的测试。如果未通过,则函数将重新启动,直到返回一个等于var查询的随机数组 当然,我想加快这个过程。有人能提出建议吗?我相信这是件简单的事,事先道歉 您可以在此处看到工作演示: 我想我必须在成功后操作我的数据对象:如何在JavaScript AJAX调用中收集仅包含指定键的数组?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我到处找了,找不到答案 能否指定一个AJAX调用,使其仅返回与提供的键相等的数组 我制作了一个简单的随机化器,通常在搜索时效果很好,但是当你过滤搜索时,返回结果可能需要一分钟的时间,因为我已经将它设置为通过与变量“query”相等的测试。如果未通过,则函数将重新启动,直到返回一个等于var查询的随机数组 当然,我想加快这个过程。有人能提出建议吗?我相信这是件简单的事,事先道歉 您可以在此处看到工作演示: 我想我必须在成功后操作我的数据对象: function getTreasure() {
function getTreasure() {
$.ajax({
url: "https://codepen.io/ohBretterson/pen/QVGRwG.js",
async: true,
success: function(csvd) {
data = $.csv.toArrays(csvd);
},
dataType: "text",
complete: function() {
let i = Math.floor(Math.random() * data.length);
let type = data[i][5];
let rarity = data[i][3];
let item = data[i][0];
let desc = data[i][1];
let req = data[i][6];
let req2 = data[i][7];
// Filter query
if (query === undefined) {
} else if (rarity !== query && type !== query) {
return getTreasure();
}
$(".controls").fadeIn("slow");
let content = `
<div class='type fade-in'>${type}</div>
<div class='rarity'>${rarity}</div>
<div class="cardContainer">
<p class='itemName fade-in'>${item}</p>
<div class="cardContents fade-in">
<div class="description">${desc}</div>
<hr>
<div class='requirement'>${req}<br>${req2}</div>
</div>
</div>
<div class='coin fade-in'><p class="est-value">est.value</p>${data[i][2]}</div>
<div class='weight fade-in'><p class="weight-value">weight</p>${
data[i][4]
}</div>
<div class='author fade-in'>${data[i][8]}</div>
<svg stroke='#000000' stroke-width='1' stroke-miterlimit='10' class='path' id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 257 368.51"><title>thing</title><circle class="circleStroke" cx="32.3" cy="338.56" r="21.2" style="fill:none;stroke:#000;stroke-miterlimit:10"/><path class="weightStroke" d="M750.58,363.36l-6.05-24.19A2.7,2.7,0,0,0,742,337h-5a7.94,7.94,0,1,0-15.42-2.65,7.74,7.74,0,0,0,.49,2.65h-5a2.71,2.71,0,0,0-2.56,2.14l-6,24.19a4.28,4.28,0,0,0,3.84,5.48h34.45C749.37,368.84,751.27,366.12,750.58,363.36Zm-21.06-26.92a2.95,2.95,0,1,1,3-2.94A2.94,2.94,0,0,1,729.52,336.44Z" transform="translate(-511.5 -15.75)" style="fill:none;stroke:#000;stroke-miterlimit:10"/><path class="innerStroke" d="M521.88,34.31h.33v-.37a9.85,9.85,0,0,1,9.84-9.84H750.3a9.85,9.85,0,0,1,9.85,9.84V366.06a9.85,9.85,0,0,1-9.85,9.84H563.22a29,29,0,1,0-41-41V62.58" transform="translate(-511.5 -15.75)" style="fill:none;stroke:#000;stroke-miterlimit:10"/><path class="innerStroke" d="M514.36,62.58V361.22a22.53,22.53,0,0,0,22.53,22.53H745.46A22.53,22.53,0,0,0,768,361.22V38.78a22.53,22.53,0,0,0-22.54-22.53H536.89A22.54,22.54,0,0,0,514.8,34.31" transform="translate(-511.5 -15.75)" style="fill:none;stroke:#000;stroke-miterlimit:10"/><path class="ribbonStroke" d="M670.63,62.58H513.28A1.28,1.28,0,0,1,512,61.29V35.6a1.29,1.29,0,0,1,1.29-1.29H670.63l-7.86,14.13Z" transform="translate(-511.5 -15.75)" style="fill:none;stroke:#000;stroke-miterlimit:10"/></svg>
`;
$("#card").html(content)
$(".fade-in")
.animate("slow")
.css("opacity", "1");
$("hr").css("width", "60%");
if (type === "Book"){
$("body").removeClass().addClass('book', 1000);
} else if (type === "Potion"){
$("body").removeClass().addClass('potion', 1000);
} else if (type === "Armor"){
$("body").removeClass().addClass('armor', 1000);
} else if (type === "Adventuring Gear"){
$("body").removeClass().addClass('gear', 1000);
} else if (type === "Quest Hook"){
$("body").removeClass().addClass('quest', 1000);
} else if (type === "Ring"){
$("body").removeClass().addClass('ring', 1000);
} else if (type === "Treasure"){
$("body").removeClass().addClass('treasure', 1000);
} else if (type === "Weapon"){
$("body").removeClass().addClass('weapon', 1000);
} else if (type === "Wondrous Item"){
$("body").removeClass().addClass('wondrous-item', 1000);
} else $("body").removeClass();
}
});
}
函数getTreasure(){
$.ajax({
url:“https://codepen.io/ohBretterson/pen/QVGRwG.js",
async:true,
成功:功能(csvd){
数据=$.csv.toArray(csvd);
},
数据类型:“文本”,
完成:函数(){
设i=Math.floor(Math.random()*data.length);
设类型=数据[i][5];
稀有性=数据[i][3];
设项=数据[i][0];
设desc=data[i][1];
设req=data[i][6];
设req2=数据[i][7];
//过滤查询
如果(查询===未定义){
}else if(稀有性!==查询和类型!==查询){
返回getTreasure();
}
$(“.controls”).fadeIn(“慢”);
让内容=`
${type}
${rarity}
${item}
${desc}${req}
${req2}
est.value
${data[i][2]} 重量${ 资料[一][4] } ${data[i][8]} 事情 `; $(“#卡片”).html(内容) $(“淡入”) .动画(“慢”) .css(“不透明度”、“1”); $(“hr”).css(“宽度”,“60%”); 如果(类型=“书本”){ $(“body”).removeClass().addClass('book',1000); }否则如果(类型==“药剂”){ $(“body”).removeClass().addClass('potion',1000); }否则如果(类型==“装甲”){ $(“body”).removeClass().addClass('armor',1000); }否则,如果(类型==“冒险装备”){ $(“body”).removeClass().addClass('gear',1000); }否则如果(类型==“任务挂钩”){ $(“body”).removeClass().addClass('quest',1000); }else if(类型==“环”){ $(“body”).removeClass().addClass('ring',1000); }否则如果(类型==“宝藏”){ $(“body”).removeClass().addClass('treasure',1000); }否则如果(类型==“武器”){ $(“body”).removeClass().addClass('武器',1000); }else if(类型==“奇妙物品”){ $(“body”).removeClass().addClass('wondulus-item',1000); }else$(“body”).removeClass(); } }); }与随机获取结果并根据查询进行测试不同,您应该向端点提供该查询元素,它应该返回您所需的数据。谢谢,我想我最初的问题只是,我该怎么做?