【发布时间】:2014-11-20 06:44:18
【问题描述】:
我正在尝试过滤一个名为 products 的数组,每个产品填充一个字符串。
var products = [
'canadian black angus beef fresh',
'canadian black angus beef frozen',
'american black angus beef frozen'
];
搜索首先在一个名为 keywords 的数组中用空格分割表单输入元素,该数组包含可变长度的字符串。
var keywords = ['angus', 'fresh'];
实际上,我正在循环 product_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'
*/
}
我该如何解决这个问题?
【问题讨论】:
-
很抱歉,不清楚您想要什么!
标签: javascript arrays search for-loop keyword