2017-06-14 44 views
-1

我有对象数组,我必须迭代并返回isPremium属性值为true的特定对象isPremium === true,我已经使用.forEach.map function来实现此功能,但是我的根据情况提前解决方案是不过滤,下面是我的阵列和我的解决方案,任何人都可以帮助,谢谢如何遍历javascript中的对象数组

const brands = [ 
      {id:1, brand_name: 'adidas', brand_trans: 'أديداس', isPremium: true, url: '/brands/adidas'}, 
      {id:2, brand_name: 'adidas Originals', brand_trans: 'أديداس اوريجينال', isPremium: false, url: '/brands/adidas-originals'}, 
      {id:4, brand_name: 'Bodyism', brand_trans: 'بودييزم', isPremium: false, url: '/brands/bodyism'}, 
      {id:5, brand_name: 'Columbia', brand_trans: 'كولومبيا', isPremium: false, url: '/brands/columbia'}, 
      {id:5, brand_name: 'Converse', brand_trans: 'كونفرس', isPremium: true, url: '/brands/converse'}, 
     ]; 

解决方案

  var premiumHeader = brands.map(function(item, index) { 
      for(var key in item) { 
      return item.isPremium !== false; 
      } 
     }); 

     premiumHeader; 

+4

你要找的'.filter()'或'.find()'。 – SLaks

+1

如果你想过滤元素,然后使用[.filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter?v=example) –

+1

请在发布之前[搜索](https://stackoverflow.com/search?q=%5Bjs%5D+filter+array+of+objects)。更多关于搜索[这里](/帮助/搜索)。 –

回答

-1

尝试Array.filter功能:

var premiumItems = brands.filter(item => item.isPremium);