У меня есть массив объектов, в которых мне нужно сделать подстановочную фильтрацию. Например, мой объект может содержать что-то вроде этого:Использование подстановочных знаков при использовании функции JavaScript JavaScript
var a = [
{
"type":"metals",
"SN":"SN0000000000"
},
{
"type":"wood",
"SN":"SN0000000001"
}
];
Моя фильтрация функция для нормальных критериев будет что-то вроде:
var filtered = a.filter(function(el) {
//normal checkbox criteria filter for selectedtype
if(!(self.serialno)){
return el.type == self.selectedType
}
//wildcard text filtering from textfield
else{
return typeof el.SN == self.serialno;
}
});
и распечатка результатов было бы что-то вроде:
console.log(filtered);
Для фильтра стандартных критериев («тип»), в котором я использую выбор критериев выбора, я могу вернуть свой выбранный тип критериев (в виде массива объектов) но в случае «SN», в котором вызывается поиск подстановочных символов на основе текста, я не могу этого сделать.
Например, если бы я должен был ввести «00» в моем подстановочном текстовом поле, функция должна возвращать массив объектов, в котором «SN/SerialNo» содержит «00» (в приведенном выше примере, как объекты в var a).
PS:
self.serialno является строкой, которая извлекается из текстового поля.
el.SN - это массив объектов, возвращаемых функцией фильтра.
Update:
работает этот код:
console.log(self.serialno.test(el.SN));
возвращает меня:
'typeof el.SN' вернет тип' el.SN', который будет строкой '' string "'. Это, вероятно, не то, что вы хотите? Не публикуя соответствующий код, этот вопрос может оказаться невозможным. –
Попробуйте использовать regexp, как в 'return self.serialno.test (el.SN);'. –
@ AndyRay, какой вам нужен соответствующий код? Мне нужно вернуть результаты объекта, в которых я искал использование подстановочного знака. – Gene