javascript - 在 .each 迭代中返回一个对象 - JavaScript

标签 javascript object iteration

我有一个名为 Category 的对象,它使用一种方法来迭代产品数组 (Product) 并返回满足 this.name 的实例===查询条件:

function Category(products){
  this.products = products; 
  this.findProductByName = function(query){
    $(this.products).each(function(){
      return this.name === query; 
    }
  }
}

我的产品(以防万一):

function Product(name){
  this.name = name;
}

然后,我使用产品创建一个 Category 实例:

var $someCategory = new Category(
   [
      new Product('foo'),
      new Product('bar')
   ]
)`

当我打电话时:

$someCategory.findProductByName('foo'); // 'undefined'

尽管:

...
this.findProductByName = function(query){
  $(this.products).each(function(){
    console.log(this.name === query); // returns 'true'
  }
}
...

当满足 this.name === query 时,我该怎么做才能返回对象?

最佳答案

你需要使用 jQuery 吗?您可以改用数组过滤方法吗...

function Category(products){
  this.products = products; 
  this.findProductByName = function(query){
    return this.products.filter(function(item){
      return item.name === query; 
    });
  };
}

关于javascript - 在 .each 迭代中返回一个对象 - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557644/

相关文章:

javascript - jquery简单交换p元素?

javascript - React 路由器导航栏导航

javascript - 如何在 React 组件中运行计时器 60 秒并每 5 秒调用一次 Redux 操作

javascript - 无法在 jquery 代码 ('#' + 添加上使用方法

Python:为什么这行不通? (对非序列的迭代)

javascript - D3 节点重叠

c++ - 传递给对象时获取数组的长度

javascript - 使用对象数组的对象中的唯一元素创建新对象

python - Python 中的一个函数可迭代并发列表以用于方程

python - 有没有一种方法可以禁用定义 __getitem__ 方法的类的迭代而不对键施加约束?