从变量中减去一个数字

时间:2014-05-07 05:25:27

标签: javascript jquery html

每次循环发生时,我都试图从revlength中减去。例如,如果有2个Google用户'帖子然后从revlength中减去2

这就是我的尝试。

var revlength = place.reviews.length;
if(place.reviews[index].author_name == 'A Google User') {
    $("#revnum").html(revlength--);
} 

添加到脚本后,代码不适用于

$.each(place.reviews, function (index, value) {
        if (place.reviews[index].text.length != 0) {
            if (place.reviews[index].text.length == 0) {
                $("#revnum").html(--place.reviews.length);
            }
            if (place.reviews[index].author_name == 'A Google User') {
                $("#revnum").html(--place.reviews.length);
                var imgid = '<img src="img/gplus.gif" width="50" height="50">';
            } else {
                $("#revnum").html(revlength);
                var imgid = '<img src="img/user.gif" width="50" height="50">';
            }

4 个答案:

答案 0 :(得分:3)

试试这个..

更改

$("#revnum").html(revlength--);//you are doing post-decrement

$("#revnum").html(--revlength);//you need to change it pre-decrement.

如果其他部分正确,则可以确定。

<强>解释

- i和i-- - 的位置 - 确定在使用该值之前或之后是否减去一个。

如果i--将在递减之前使用该值。 如果--i将在递减后使用该值。

答案 1 :(得分:1)

将我的评论(似乎有效)转化为答案:

您需要实际递减place.reviews.length

if(place.reviews[index].author_name == 'A Google User') {
    $("#revnum").html(place.reviews.length--);
} 

您的原始代码只是递减了一个暂时变量revlength,这个变量并不持久,因为您每次都会从place.reviews.length重新加载该变量。因此place.reviews.length永远不会减少。


作为解释,也许你的印象是在做完之后:

var revlength = place.reviews.length; 

当你那时:

revlength--

它也会减少place.reviews.length,但事实并非如此。 revlength是一个新变量,其值设置为place.reviews.length,但当您执行revlength--时,只会更改该变量,但不会对{{1}产生任何影响}。因此,对于要继续递减的值,您需要递减place.reviews.length

答案 2 :(得分:1)

我认为这就是你想要的:

var revlength = $.grep(place.reviews, function (val) {
    return val.author_name !== 'A Google User';
}).length;
// alert(revlength);
// console.log(revlength);

答案 3 :(得分:-1)

试试这个,

var revlength = place.reviews.length;
revlength =  parseInt(revlength.toString());
if(place.reviews[index].author_name == 'A Google User') {
revlength--;
$("#revnum").html(revlength);
}