如何解决jshint错误`不要让一个loop.`内功能与jQuery $ .grep(How to

2019-09-24 03:22发布

下面的JavaScript代码给了我一个循环内不要让功能。 错误

/* Get the favorite products from the data using the id */
productDataCategory[FAVORITES].length = 0/* empty favorites productDataCategory */;
for ( i = 0; i < currentUser.favorites.length; i++) {
    product = $.grep(productData, function(e){ return e.id === currentUser.favorites[i]; })[0];
    productDataCategory[FAVORITES].push(p);
}

我看这个问题了,看到其他成员问了一些类似的问题
如何绕过的JSLint错误“不要在循环中做出的功能。”
不要在一个循环中做功能

我的问题是,我使用的循环内$ .grep功能找到一个阵列产品。
我不知道如何与上述问题的答案解决此问题。


从记录的用户数据

{
    "user": "MBO",
    "email": "my@mail.com",
    "username": "Marcel",
    "photoURL": "url_here",
    "favorites": [13,25,40,56]
}

Answer 1:

把功能外循环:

/* Get the favorite products from the data using the id */
productDataCategory[FAVORITES].length = 0/* empty favorites productDataCategory */;
var f = function(e){ return e.id === currentUser.favorites[i]; };
for ( i = 0; i < currentUser.favorites.length; i++) {
  product = $.grep(productData, f)[0];
  productDataCategory[FAVORITES].push(p);
}


文章来源: How to solve the jshint error `Don't make functions within a loop.` with jquery $.grep