有一个JSON搜索引擎here。我试图弄清楚如何过滤Google工作表的结果以仅包含字符数小于4且大于7的项目,例如:
entry.filter(entry => entry.gsx$status.$t.length > 7 || entry.gsx$status.$t.length < 4)
所以在jQuery中,我这样做了:
mounted: function () {
var entry = data.feed.entry;
var result = entry.filter(entry => entry.gsx$status.$t.length > 7 || entry.gsx$status.$t.length < 4);
$.ajax({
dataType: "json",
url: GSHEET_JSON_URL + '&cache-buster=' + Math.random(),
success: function(data, result) {
if (data && data.feed && data.feed.entry && data.feed.entry[0]) {.....etc....
然后,我假定它必须放入if语句(根据注释中的建议),但是if语句已经被填满,我将其放在data.feed.entry.forEach(function(entry)
(下面的第19行)行之后,并且在该行之前对其进行了测试。
我的问题是我无法完全确定将其放在列出的代码中的位置。我尝试将条目过滤器放在第150行(请注意GitHub项目),但它不会发回任何错误并且不起作用。我可能是想将其放在错误的部分吗?我认为它应该在ajax调用之后立即执行。例如本部分:
mounted: function () {
$.ajax({
dataType: "json",
url: GSHEET_JSON_URL + '&cache-buster=' + Math.random(),
success: function(data) {
if (data && data.feed && data.feed.entry && data.feed.entry[0 var missing = ['customer', 'regisnbrtx', 'num', 'description', 'qty', 'price', 'total', 'address', 'status'].filter(function(name) {
return !data.feed.entry[0]['gsx$' + name];
});
if (missing[0]) {
vueSearch.error = 'You must add the "`' + missing.join('`", "`').replace(/, (?!.*,)/, ', and ') + '`" field' + (missing[1] ? 's' : '') + '.';
return;
}
}
else {
vueSearch.error = 'The specified GSHEET_JSON_URL is invalid:<br>`' + GSHEET_JSON_URL + '`';
return;
}
data.feed.entry.forEach(function(entry) {
vueSearch.links.push({
customer: entry.gsx$customer.$t,
regisnbrtx: entry.gsx$regisnbrtx.$t,
num: entry.gsx$num.$t,
description: entry.gsx$description.$t,
qty: entry.gsx$qty.$t,
price: entry.gsx$price.$t,
total: entry.gsx$total.$t,
address: entry.gsx$address.$t,
status: entry.gsx$status.$t,
partrecieved: entry.gsx$partrecieved.$t,
date: entry.gsx$date.$t,
shipdate: entry.gsx$shipdate.$t,
itemrec: entry.gsx$itemrec.$t,
comments: entry.gsx$comments.$t
});
});
vueSearch.loading = false;
vueSearch.updateResults();
},
error: function() {
vueSearch.error = 'The specified GSHEET_JSON_URL does not contain JSON:<br>`' + GSHEET_JSON_URL + '`';
vueSearch.loading = false;
}
});
// Set focus to search box
$('#barcoder').select();
}
});
});
我可以使用普通的jQuery来做到这一点,但是当我将其与Ajax结合使用时,我会无所适从。这里有几篇关于过滤的文章,但不是根据我发现的字符长度。
也尝试与创建者联系并在其页面上发布,但没有运气。任何帮助将不胜感激。
答案 0 :(得分:0)
找到了!
在原始行的第76-80行中,您可以将var匹配项“ whatever”(任意)更改并过滤结果。它仍然会导入所有结果,但会进行调整以删除带有您在估算搜索词时指定的字符串的结果。例如:
Parent Child
p1 c1
p1 c2
p1 c3