Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript数组indexOf数组?_Javascript_Arrays_Lodash_Indexof - Fatal编程技术网

JavaScript数组indexOf数组?

JavaScript数组indexOf数组?,javascript,arrays,lodash,indexof,Javascript,Arrays,Lodash,Indexof,我想知道我怎么能检查这个。 例如: 如何使两种产品与其中一种类别匹配? 希望有人能帮我:plain js: 洛达斯: 使用simple for: 从代码方面来说,这不是一个很好的解决方案,但如果有人不理解,这是可行的,这一点是很清楚的 var乘积=[ { 标题:“产品1”, 类别:[‘一’、‘二’、‘三’] }, { 标题:“产品2”, 类别:[‘三’、‘四’] } ]; var类别=['2','4']; var-retArr=[]; 对于i=0;i.长度++我{ 对于j=0;j-1{//检查

我想知道我怎么能检查这个。 例如:

如何使两种产品与其中一种类别匹配? 希望有人能帮我:

plain js: 洛达斯: 使用simple for:


从代码方面来说,这不是一个很好的解决方案,但如果有人不理解,这是可行的,这一点是很清楚的

var乘积=[ { 标题:“产品1”, 类别:[‘一’、‘二’、‘三’] }, { 标题:“产品2”, 类别:[‘三’、‘四’] } ]; var类别=['2','4']; var-retArr=[]; 对于i=0;i.长度++我{ 对于j=0;j-1{//检查产品类别是否包含某些类别。如果是,则添加到数组中 复推产品[j]; } } }
console.logretar 只是简单的循环:

var foundproducts = [];
for (i = 0; i < products.length; i++) {
    for (u = 0; u < categories.length; u++) { 
        if (products[i].categories.indexOf(categories[u]) != -1) { 
            foundproducts.push(products[i].title);
            break;
        } 
    }
}

我真的不明白这个问题!为什么是“['2','4'”?根据您需要的产品类别,我的意思是什么?我想过滤与lodash uu.findproducts、functionitem{return item.categories.IndexOfcCategories>-1;}匹配类别数组的产品;这使用了一个posterAt没有提到的库,至少提到了这段代码使用的库。是的,应该提到我确实使用了lodash。。但也许有一个更干净的纯JavaScript解决方案,就像这样:谢谢,这很有效!虽然你有一个拼写错误的分类;-再次感谢!
products.filter(function(product) {
  return categories.some(function(cat) {
     return product.categories.indexOf(cat) >= 0;
  });
});
_.filter(products, function(product) {
  return _.some(categories, function(cat) {
     return _.indexOf(product.categories, cat) >= 0;
  });
});
var products = [
    {
        title: 'Product 1',
        categories: ['One', 'Two', 'Three']
    },
    {
        title: 'Product 2',
        categories: ['Three', 'Four']
    }
];

var categories = ['Two', 'Four'];

var list = []
for (x in products) {
    for (y in products[x].categories) {
        if (categories.indexOf(products[x].categories[y]) != -1) {
            list.push(products[x].title)
        }
    }
}

console.log(list) //here your match
var foundproducts = [];
for (i = 0; i < products.length; i++) {
    for (u = 0; u < categories.length; u++) { 
        if (products[i].categories.indexOf(categories[u]) != -1) { 
            foundproducts.push(products[i].title);
            break;
        } 
    }
}