gpt4 book ai didi

javascript - 使用 jQuery 过滤 JSON 结果

转载 作者:数据小太阳 更新时间:2023-10-29 05:37:12 25 4
gpt4 key购买 nike

有一个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 中时,它让我不知所措。这里有几篇关于过滤的帖子,但不是根据我发现的字符长度。

还尝试联系创作者并在他们的页面上发帖,但没有成功。任何帮助将不胜感激。

最佳答案

找到了!

在原文的第 76-80 行中,您可以更改 var 匹配“whatever”并过滤结果。它仍然会导入所有结果,但会进行调整以删除带有您在输入搜索词时指定的字符串的结果。例如:

var results = self.links
.reduce(function(scores, link, linkIndex) {
var score = searchTerms.reduce(function(score, searchTerm) {
if (score !== false) {

//modify one of these below, my example on the first var:

var matchesTitle = ((link.title).match('YOURSTRINGHERE'));
var matchesURL = (link.url.match(searchTerm.rgx) || '').length;
var matchesDescr = ((link.description || '').match(searchTerm.rgx) || '').length;
var matchesKeywords = ((link.keywords || '').match(searchTerm.rgx) || '').length;
var matchesAny = !!(matchesTitle || matchesURL || matchesDescr || matchesKeywords);
return searchTerm.must !== !matchesAny

关于javascript - 使用 jQuery 过滤 JSON 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56446098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com