0

我得到的计数是从 api 获取的,为简单起见,我只是硬编码整数来表示我的问题。

我需要遍历 vars fbCounttweetCountpinCount,并在它们超过 1k 时做一些事情。

我是一个红宝石人,我很确定我在做一个愚蠢的举动。我得到的错误是: 未捕获的类型错误对象 18000 没有方法“每个”

var fbCount        = 18000,
    tweetCount     = 0,
    pinCount       = 0;

function somethingByCount(count) {
    count.each(function() { 
         alert("firing each count")
    });
  }

somethingByCount(fbCount,tweetCount,pinCOunt);
4

3 回答 3

2

使用参数获取参数列表

使用$.each()进行迭代 - 跨浏览器

function somethingByCount() {
    $.each(arguments, function(idx, val) { 
        alert("firing each count:" + val)
    });
}

演示:小提琴

使用本机Array.forEach()进行迭代 - 仅在现代浏览器上

function somethingByCount() {
    Array.prototype.forEach.call(arguments, function(val, idx){
        console.log("firing each count:", val)
    })
}

演示:小提琴

于 2013-09-19T03:55:42.160 回答
1

该函数期望参数是一个数组,因此您必须将它们括在括号中:

somethingByCount([fbCount, tweetCount, pingCount]);

或者您可以更改函数以使用arguments包含所有参数的数组的变量:

function somethingByCount() {
    arguments.each(function() {
        alert("firing each count");
    });
}
于 2013-09-19T03:55:28.750 回答
0

那么你可以使用一个数组

    var fbCount        = 18000,
    tweetCount     = 0,
    pinCount       = 0;

    var data=new Array(fbCount,tweetCount,pinCount);

function somethingByCount(count) {
    $(count).each(function() { 
         alert("firing each count")
    });
  }

somethingByCount(data);
于 2013-09-19T03:58:05.560 回答