Здесь есть поисковая система JSON здесь . Я пытаюсь выяснить, как я могу отфильтровать результаты листа 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, это оставляет меня в растерянности. Здесь есть несколько постов по фильтрации, но не по длине символа из того, что я нашел.
Также пытался связаться с создателем и опубликовать на своей странице, но не повезло. Любая помощь будет оценена.