我正试图过滤一个名为products的数组,该数组中填充了每个产品的一个字符串。
var products = [
'canadian black angus beef fresh',
'canadian black angus beef frozen',
'american black angus beef frozen'
];
搜索始于将表单输入元素按空格分割成一个名为 keywords 的数组,其中包含变长字符串。
var keywords = ['angus', 'fresh'];
实际上,我正在使用for循环遍历product_array,并为keyword_array创建第二个(内部)for循环。到目前为止一切都好。
这是展示问题的简短代码:
function test() {
var products = [
'canadian black angus beef fresh',
'canadian black angus beef frozen',
'american black angus beef frozen'
];
var keywords = ['angus', 'fresh'];
var hits = [];
for (var i = 0; i < products.length; i++) {
for (var j = 0; j < keywords.length; j++) {
if (products[i].indexOf(keywords[j]) != -1) {
/*
a if case for looped '&&' operator
would be great - or something like that
looped because of the variable length of keywords
*/
hits.push(products[i]);
}
}
}
console.log(hits);
/*
all products :/ - because all product matches with 'angus'
but I'm searching for an product that contains 'angus' && 'fresh'
*/
}
我该如何解决这个问题?